KBOARD 아바타게시판에 RSS로 불러와서 기사등록을 하고 있습니다.

그런데 게시판에 게시되는 글이 전체가 나오지 않고 일부분만 나오는데 글과 그림 모두를 나오게끔 하려면 아래의 코드를 어디를 고쳐야 할까요?

 

 

<?php
/*
Plugin Name: 테스트 플러그인
Plugin URI: https://www.cosmosfarm.com/
Description: 테스트 플러그인 입니다.
Version: 1.0.0
Author: 코스모스팜 - Cosmosfarm
Author URI: https://www.cosmosfarm.com/
*/

if(!defined('ABSPATH')) exit;

register_activation_hook(__FILE__, 'my_activation');
function my_activation(){
    if (! wp_next_scheduled('my_hourly_event')){
  wp_schedule_event(time(), 'my_event', 'my_hourly_event');
    }
}

add_filter('cron_schedules', 'my_add_weekly');
function my_add_weekly($schedules){
 $schedules['my_event'] = array(
  'interval' =>600, // 초 단위 600은 10분
  'display' => 'test'
 );
 return $schedules;
}

add_action('my_hourly_event', 'do_this_hourly');
function do_this_hourly(){
 global $wpdb;
 $board_id = '7';
 
 $url = "http://www.jeonbuk.go.kr/board/openApi/rss.jeonbuk?boardId=PRESS_REPORT";
 $curl = curl_init($url);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
 $data = curl_exec($curl);
 
 $xml =  SimpleXML_load_string($data);
 
 foreach($xml->channel->item as $item){
  $link = esc_sql($item->link);
  
  $select = "`{$wpdb->prefix}kboard_board_content`.`uid`";
  $from = "`{$wpdb->prefix}kboard_board_content` LEFT JOIN `{$wpdb->prefix}kboard_board_option` ON `{$wpdb->prefix}kboard_board_content`.`uid`=`{$wpdb->prefix}kboard_board_option`.`content_uid`";
  $where = "`board_id`='{$board_id}' AND `parent_uid`='0' AND `notice`='' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval') AND `{$wpdb->prefix}kboard_board_option`.`option_key`='link' AND `{$wpdb->prefix}kboard_board_option`.`option_value`='{$link}'";
  $result = $wpdb->get_var("SELECT {$select} FROM {$from} WHERE {$where}");
  
  if(count($result) < 1){
   $content = new KBContent($board_id);
   $content_title = kboard_safeiframe(kboard_xssfilter($item->title));
   $content_content = kboard_safeiframe(kboard_xssfilter($item->description));
   
   $data = array();
   $data['board_id'] = $board_id;
   $data['member_uid'] = '1';
   $data['member_display'] = '관리자';
   $data['title'] = $content_title;
   $data['content'] = $content_content;
   $data['date'] = date('YmdHis', current_time('timestamp'));
   
   $_POST['kboard_option_link'] = $item->link;
   
   $content_uid = $content->insertContent($data);
   $content->updateOptions();
  }
 }
}

register_deactivation_hook(__FILE__, 'my_deactivation');
function my_deactivation(){
 wp_clear_scheduled_hook('my_hourly_event');
}

 

위 코드를 test.php 파일로 FTP  wp-content/plugin 에 붙여넣었습니다.

정상적으로 게시는 되는데 게시글을 클릭해서 들어가니 일부분만 보여지네요 ㅜㅜ

그리고 RSS 주소를 추가하려면 어디에 어떻게 넣어야 할까요?

 

두가지 꼭 부탁드립니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    올려주신 코드에서 실제 RSS 주소로 확인해보니

    게시글 일부만 표시되는 문제는 코드 상의 문제는 아닙니다.

    실제 RSS 주소로 접속해서 description 쪽을 확인해보시면

    본문 내용 전체가 아닌 특정한 길이로 잘려있습니다.

    RSS를 제공해주는 쪽에서 description에 전체 내용을 표시하도록 지원해야 가능할 듯합니다.

     

    현재 주소 외에 다른 RSS 주소도 추가하시려면

    올려주신 코드 중 아래의 코드를 찾아서

    foreach($xml->channel->item as $item){
    	$link = esc_sql($item->link);
    
    	$select = "`{$wpdb->prefix}kboard_board_content`.`uid`";
    	$from = "`{$wpdb->prefix}kboard_board_content` LEFT JOIN `{$wpdb->prefix}kboard_board_option` ON `{$wpdb->prefix}kboard_board_content`.`uid`=`{$wpdb->prefix}kboard_board_option`.`content_uid`";
    	$where = "`board_id`='{$board_id}' AND `parent_uid`='0' AND `notice`='' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval') AND `{$wpdb->prefix}kboard_board_option`.`option_key`='link' AND `{$wpdb->prefix}kboard_board_option`.`option_value`='{$link}'";
    	$result = $wpdb->get_var("SELECT {$select} FROM {$from} WHERE {$where}");
    	
    	if(count($result) < 1){
    		$content = new KBContent($board_id);
    		$content_title = kboard_safeiframe(kboard_xssfilter($item->title));
    		$content_content = kboard_safeiframe(kboard_xssfilter($item->description));
    		
    		$data = array();
    		$data['board_id'] = $board_id;
    		$data['member_uid'] = '1';
    		$data['member_display'] = '관리자';
    		$data['title'] = $content_title;
    		$data['content'] = $content_content;
    		$data['date'] = date('YmdHis', current_time('timestamp'));
    		
    		$_POST['kboard_option_link'] = $item->link;
    		
    		$content_uid = $content->insertContent($data);
    		$content->updateOptions();
    	}
    }

    찾은 코드 밑에 아래의 코드를 추가해보시겠어요?

    $url = "두번째주소";
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $data = curl_exec($curl);
     
    $xml =  SimpleXML_load_string($data);
    
    foreach($xml->channel->item as $item){
    	$link = esc_sql($item->link);
    
    	$select = "`{$wpdb->prefix}kboard_board_content`.`uid`";
    	$from = "`{$wpdb->prefix}kboard_board_content` LEFT JOIN `{$wpdb->prefix}kboard_board_option` ON `{$wpdb->prefix}kboard_board_content`.`uid`=`{$wpdb->prefix}kboard_board_option`.`content_uid`";
    	$where = "`board_id`='{$board_id}' AND `parent_uid`='0' AND `notice`='' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval') AND `{$wpdb->prefix}kboard_board_option`.`option_key`='link' AND `{$wpdb->prefix}kboard_board_option`.`option_value`='{$link}'";
    	$result = $wpdb->get_var("SELECT {$select} FROM {$from} WHERE {$where}");
    
    	if(count($result) < 1){
    		$content = new KBContent($board_id);
    		$content_title = kboard_safeiframe(kboard_xssfilter($item->title));
    		$content_content = kboard_safeiframe(kboard_xssfilter($item->description));
    
    		$data = array();
    		$data['board_id'] = $board_id;
    		$data['member_uid'] = '1';
    		$data['member_display'] = '관리자';
    		$data['title'] = $content_title;
    		$data['content'] = $content_content;
    		$data['date'] = date('YmdHis', current_time('timestamp'));
    
    		$_POST['kboard_option_link'] = $item->link;
    
    		$content_uid = $content->insertContent($data);
    		$content->updateOptions();
    	}
    }

    위의 코드에서 $url = "두번째주소" 부분은 실제 추가하려는 주소로 적용해보시겠어요?

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요