2012-02-03 9 views
7

Estoy configurando una campaña de RSS a correo electrónico en MailChimp usando mi fuente de Wordpress, y quiero incluir la imagen presentada en mi plantilla de mailchimp. He intentado usar esto para añadir la imagen, que funciona, sino que simplemente lo añade al contenido que no funciona para la sección MailChimp del código RSS:Agregue la imagen destacada de wordpress a la fuente RSS

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

Al parecer MailChimp quiere que la "propia" elemento de imagen único. Aquí hay un ejemplo de lo que quieren: http://kb.mailchimp.com/article/how-can-i-format-the-image-content-in-my-rss-to-email-campaigns

pero parece que está en un formato RSS diferente. Esto es lo que está produciendo mi RSS: http://pacmissions.org/dev/missions/zimbabwe-2012/feed/

Respuesta

25

A menudo tengo que crear fuentes personalizadas para MailChimp, y encuentro que una gran parte del tiempo tengo que hacer cambios un tanto 'hacky' como poner valores personalizados en los campos estándar limitados que MailChimp soportes.

Por esta razón, me gusta usar el método descrito en Yoast (http://yoast.com/custom-rss-feeds-wordpress/) para crear una página que genere un feed RSS personalizado.

Hay que hacer un par de ajustes para que la imagen destacada se incluya como un campo que MailChimp reconocerá.

En primer lugar es necesario agregar el espacio de nombres Media RSS, lo que suelo hacer mediante la adición a la apertura <rss> etiqueta:

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

A continuación, con el fin de incluir la imagen ofrecida en el interior del material:

<?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; ?> 

Si necesita especificar un tamaño de imagen en particular para incluir, tendrá que usar este código en el interior del elemento en su lugar:

<?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; ?> 

Puede agarrar esto en MailChimp usando las etiquetas de combinación *|RSSITEM:IMAGE|* o *|FEEDITEM:IMAGE|*.

0

Parece haber muchos ejemplos de cómo agregar la imagen al principio del contenido en el feed, pero no demasiados en los que está creando una nueva etiqueta. Un posible problema es que crear una etiqueta personalizada o algo similar no será un formato RSS válido. Si está creando un documento XML para su propio uso, no importa tanto si el feed lo valida. Esto es lo que hice, y debería poder modificarlo ligeramente para el caso de uso de MailChimp. Avíseme si aún necesita ayuda después de esto.

En functions.php (dentro de la carpeta del tema ... wp-content/themes/...):

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]; 
} 

En wp-includes/feed-rss2.php (I usé la etiqueta del gabinete, pero aún no hice el cálculo del tamaño del archivo, así que utilicé un marcador de posición)

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