타 wp의 feed를 내 wp에 불러오기
본문
<?php
include_once(ABSPATH . WPINC . '/feed.php');
$rss = fetch_feed('feed의 링크');
if (!is_wp_error( $rss ) ) :
$maxitems = $rss->get_item_quantity(3);
$rss_items = $rss->get_items(0, $maxitems);
endif;?>
<ul>
<?php
if ($maxitems == 0): echo '<li>記事がありません</li>';a
else :
date_default_timezone_set('Asia/Tokyo');
foreach ( $rss_items as $item ) : ?>
<li>
<time><?php echo $item->get_date('Y.m.d'); ?></time>
<a>get_permalink(); ?>" target="_blank">
<p><?php echo $item->get_title(); ?></p>
</a>
</li>
<?php endforeach; ?>
<?php endif; ?>
</ul>
위와 같은 코드로 타 블로그(wp)의 피드를
제가 관리하고 있는 워드프레스 페이지에 불러왔습니다.
테스트 서버에서는 문제 없이 최신글이 3개 리스트업되는데,
본 서버 (테스트서버와 다른 회사 서버)에 완전히 같은 방식으로 넣었는데
최신글 출력이 잘 안됩니다.
(에러가 나는게 아니라 예를들면 9월 1일 최신글이 3개가 있는데
테스트서버에서는 9월1일자 최신글이 리스트업되는데
본서버에서는 8월글이 3개 출력됩니다.)
코드는 완전히 똑같이 썼는데, 이건 서버에 문의해야 하는 것일까요?
혹시 코드가 이상하게 써져있나요? 원인을 못찾겠습니다 ㅠ ㅠ
(죄송합니다 php지식이 없고, 검색으로 가져다 쓴 코드입니다)
그리고 위의 타 블로그(wp)는 제가 관리 하는 곳이 아니라 설정이 어렵습니다 ㅠ ㅠ
혹시 게시글을 발행한 후, 나중에 날짜를 변경하게 되면 에러가 나는 상황이 생기나요?
테스트 서버 링크는 비번이 걸려있어 오픈하기 어렵지만
본 서버 링크는 이곳에서 확인하실 수 있습니다.
위에서 세번째 view를 열어보시면 나옵니다.
제가 글로 설명을 잘 못해서 ㅠ ㅠ.. 죄송합니다.
혹시 원인을 아시거나 비슷한 경험이 있으신 분 답변을 부탁드립니다.
읽어주셔서 감사합니다.
답변 1
그런 경험이 없고 만져본적이 없어서... 아마 제가 답변하는 것이 틀릴수도 있습니다.
글을 읽어보니 캐시가 적용되어 있지 않나 생각이 되네요.
<?php
include_once(ABSPATH . WPINC . '/feed.php');
function custom_feed_interval( $seconds ) {
return 60; // caching time in seconds
}
add_filter( 'wp_feed_cache_transient_lifetime' , 'custom_feed_interval' );
$rss = fetch_feed('feed의 링크');
if (!is_wp_error( $rss ) ) :
$maxitems = $rss->get_item_quantity(3);
$rss_items = $rss->get_items(0, $maxitems);
요렇게 고쳐보세요.
feed 의 캐시 지우는 방법에 나와있는 링크 :
그래도 안된다면...
캐시 플러그인을 사용하고 있다면 캐시를 삭제해 보세요.