2012-02-03 10 views
7

Sto configurando una campagna RSS per e-mail in MailChimp usando il mio feed Wordpress, e voglio includere l'immagine in primo piano nel mio modello mailchimp. Ho provato con questo per aggiungere l'immagine, che funziona, ma semplicemente aggiunge al contenuto che non funziona per la sezione MailChimp del codice RSS:Aggiungi wordpress immagine in primo piano al feed 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'); 

Apparentemente MailChimp vuole è "proprio" elemento di immagine unico. Ecco un esempio di ciò che vogliono: http://kb.mailchimp.com/article/how-can-i-format-the-image-content-in-my-rss-to-email-campaigns

ma sembra che sia in un formato RSS diverso. Ecco cosa sta trasmettendo il mio RSS: http://pacmissions.org/dev/missions/zimbabwe-2012/feed/

risposta

25

Spesso devo creare feed personalizzati per MailChimp e trovo che molto tempo devo apportare modifiche un po '"hacky" come inserire valori personalizzati nei campi standard limitati che MailChimp sostiene.

Per questo motivo mi piace utilizzare il metodo descritto in Yoast (http://yoast.com/custom-rss-feeds-wordpress/) per creare una pagina che genera un feed RSS personalizzato.

Ci sono un paio di modifiche da fare per ottenere l'immagine in primo piano inclusa come campo che MailChimp riconoscerà.

primo luogo è necessario aggiungere il namespace Media RSS, che faccio di solito con l'aggiunta all'apertura <rss> tag:

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

Poi, al fine di includere l'immagine in evidenza all'interno della macchina:

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

Se è necessario specificare una particolare dimensione dell'immagine da includere, è necessario utilizzare questo codice all'interno dell'articolo invece:

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

È quindi possibile prendere questo in MailChimp utilizzando i tag di unione *|RSSITEM:IMAGE|* o *|FEEDITEM:IMAGE|*.

0

Sembra che ci siano molti esempi su come aggiungere l'immagine all'inizio del contenuto del feed, ma non troppi dove si sta creando un nuovo tag. Un potenziale problema è che la creazione di un tag personalizzato o qualcosa di simile non sarà un formato RSS valido. Se stai creando un documento XML per il tuo utilizzo, non importa tanto se il feed viene convalidato. Ecco cosa ho fatto e dovresti essere in grado di modificarlo leggermente per il caso d'uso MailChimp. Fammi sapere se hai ancora bisogno di aiuto dopo questo.

In functions.php (all'interno della cartella 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]; 
} 

in wp-includes/feed-rss2.php (I usato il tag enclosure, ma non ho ancora eseguito il calcolo del file, quindi ho usato un segnaposto)

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