programing

RSS 피드에 WordPress 피처 이미지 추가

golfzon 2023. 3. 5. 10:52
반응형

RSS 피드에 WordPress 피처 이미지 추가

WordPress RSS Feed를 사용하여 MailChimp에서 이메일을 보낼 RSS 캠페인을 설정하고 있으며 MailChimp 템플릿에 주요 이미지를 포함시키고 싶습니다.이미지를 추가하기 위해 이 기능을 사용했지만, RSS 코드의 Mail Chimp 섹션에서는 작동하지 않는 콘텐츠에 이미지를 추가합니다.

function featuredtoRSS($content) {
global $post;
if ( has_post_thumbnail( $post->ID ) ){
$content = '' . get_the_post_thumbnail( $post->ID, 'thumbnail', array( 'style' => 'float:left; margin:0 15px 15px 0;' ) ) . '' . $content;
}
return $content;
}

add_filter('the_excerpt_rss', 'featuredtoRSS');
add_filter('the_content_feed', 'featuredtoRSS');

Mail Chimp는 독자적인 이미지 요소를 원하는 것 같습니다.고객이 원하는 예를 다음에 제시하겠습니다.http://kb.mailchimp.com/article/how-can-i-formating-image-content-in-my-rss-to-emails

RSS 형식이 다른 것 같아요.RSS 출력은 다음과 같습니다.http://pacmissions.org/dev/missions/zimbabwe-2012/feed/

MailChimp용 커스텀피드를 작성해야 하는 경우가 많아 MailChimp가 지원하는 제한된 표준 필드에 커스텀값을 입력하는 등 다소 '해키한' 변경을 해야 하는 경우가 많습니다.

이 때문에, 커스텀 RSS 피드를 출력하는 페이지를 작성하려면 , Yoast(http://yoast.com/custom-rss-feeds-wordpress/ )에 기재되어 있는 방법을 사용합니다.

Mail Chimp가 인식할 수 있는 필드로 피처링 이미지를 포함하기 위해 몇 가지 수정이 필요합니다.

먼저 미디어 RSS 네임스페이스를 추가해야 합니다.이것은 보통 오프닝에 추가해서 합니다.<rss>태그:

<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss">

그런 다음 아이템 안에 피처 이미지를 포함하려면:

<?php if(get_the_post_thumbnail()): ?>
    <media:content url="<?php echo wp_get_attachment_url(get_post_thumbnail_id($post->ID)); ?>" medium="image" />
<?php endif; ?>

포함할 특정 이미지 크기를 지정해야 하는 경우 대신 항목 내에서 다음 코드를 사용해야 합니다.

<?php if(get_the_post_thumbnail()): ?>
    <media:content url="<?php $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'imageSize'); echo $image[0]; ?>" medium="image" />
<?php endif; ?>

그런 다음 MailChimp에서 다음을 사용하여 이 정보를 가져올 수 있습니다.*|RSSITEM:IMAGE|*또는*|FEEDITEM:IMAGE|*마지 태그

피드의 콘텐츠 상단에 이미지를 추가하는 방법의 예는 많지만 새 태그를 만드는 위치는 많지 않습니다.잠재적인 문제 중 하나는 커스텀태그 등의 작성은 유효한 RSS 형식이 아니라는 것입니다.자신의 용도에 맞게 XML 문서를 작성하는 경우 피드의 유효성이 확인되더라도 크게 문제가 되지 않습니다.Mail Chimp의 사용 사례에 맞게 간단하게 수정할 수 있습니다.

functions.php추가(테마 폴더 추가:wp-content/themes/{your-active-theme-folder}):

function insertImageRSS() {
  global $post;
  preg_match("/(http:\/\/.*(jpg|jpeg|png|gif|tif|bmp))\"/i", get_the_post_thumbnail( $post->ID, 'thumbnail' ), $matches);
  return $matches[1];
}

에서wp-includes/feed-rss2.php(인클로저 태그를 사용했지만 아직 파일 크기 계산을 하지 않았기 때문에 플레이스 홀더를 사용했습니다).

<?php if (get_the_post_thumbnail( $post->ID, 'thumbnail' ) != '') { ?><enclosure <?php echo 'url="' . insertImageRSS() . '"'; ?> length="1000" type="image/jpeg" /><?php } ?>

언급URL : https://stackoverflow.com/questions/9123531/add-wordpress-featured-image-to-rss-feed

반응형