9

WordPress RSS フィードを使用して、MailChimp で RSS からメールへのキャンペーンを設定しています。MailChimp テンプレートに注目の画像を含めたいと考えています。これを使用して画像を追加しようとしましたが、機能しますが、コンテンツに追加するだけで、RSS コードの MailChimp セクションでは機能しません。

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');

どうやら、MailChimp は「独自の」一意の画像要素を望んでいるようです。彼らが望むものの例を次に示します。http://kb.mailchimp.com/article/how-can-i-format-the-image-content-in-my-rss-to-email-campaigns

しかし、それは別の RSS 形式のようです。私のRSSが出力しているものは次のとおりです。http://pacmissions.org/dev/missions/zimbabwe-2012/feed/

4

2 に答える 2

27

MailChimp のカスタム フィードを作成しなければならないことがよくありますが、多くの場合、MailChimp がサポートする限定された標準フィールドにカスタム値を入力するなど、やや「ハック」な変更を行う必要があります。

このため、私は Yoast で説明されている方法を使用するのが好きです (http://yoast.com/custom-rss-feeds-wordpress/) カスタム RSS フィードを出力するページを作成します。

主な画像を MailChimp が認識するフィールドとして含めるには、いくつかの調整が必要です。

まず、Media 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; ?>

*|RSSITEM:IMAGE|*次に、または*|FEEDITEM:IMAGE|*マージ タグを使用して、MailChimp でこれを取得できます。

于 2012-02-03T15:39:33.610 に答える
0

フィードのコンテンツの上部に画像を追加する方法の例はたくさんあるようですが、新しいタグを作成する場所はそれほど多くありません。潜在的な問題の1つは、カスタムタグなどを作成しても有効なRSS形式ではないことです。自分で使用するためのXMLドキュメントを作成している場合、フィードが検証されるかどうかはそれほど重要ではありません。これが私がしたことであり、MailChimpのユースケースに合わせて簡単に少し変更できるはずです。

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 } ?>
于 2012-08-16T08:24:29.570 に答える