2012-02-03 19 views
7

Przygotowuję kampanię RSS do wiadomości e-mail w programie MailChimp przy użyciu mojego pliku Wordpress i chcę dołączyć polecany obraz do mojego szablonu mailchimp. Próbowałem za pomocą tego dodać obraz, który działa, ale to po prostu dodaje się do zawartości, która nie działa dla sekcji MailChimp kodu RSS:Dodaj wordpress opisywany obraz do kanału 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'); 

Widocznie MailChimp chce to „właścicielem” unikalny element obrazu. Oto przykład tego, czego chcą: http://kb.mailchimp.com/article/how-can-i-format-the-image-content-in-my-rss-to-email-campaigns

, ale wygląda na to, że jest w innym formacie RSS. Oto, co wyprowadza mój RSS: http://pacmissions.org/dev/missions/zimbabwe-2012/feed/

Odpowiedz

25

Często muszę tworzyć niestandardowe kanały dla MailChimp i stwierdzam, że przez długi czas muszę wprowadzać nieco "hackowate" zmiany, takie jak umieszczanie niestandardowych wartości w ograniczonych standardowych polach, które MailChimp obsługuje.

Z tego powodu lubię korzystać z metody opisanej w Yoast (http://yoast.com/custom-rss-feeds-wordpress/), aby utworzyć stronę, która generuje niestandardowy kanał RSS.

Istnieje kilka poprawek, które należy wprowadzić, aby uzyskać opisywany obraz jako pole rozpoznawane przez program MailChimp.

Po pierwsze trzeba dodać przestrzeń nazw mediów RSS, który zwykle zrobić dodając do otwarcia <rss> tag:

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

Następnie w celu uwzględnienia opisywany obraz wewnątrz elementu:

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

Jeśli chcesz określić konkretny rozmiar obrazu, który ma zostać uwzględniony, musisz użyć tego kodu wewnątrz elementu:

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

Następnie można pobrać w MailChimp przy użyciu znaczników scalających *|RSSITEM:IMAGE|* lub *|FEEDITEM:IMAGE|*.

0

Wygląda na to, że istnieje mnóstwo przykładów dodawania obrazu do początku zawartości w kanale, ale niezbyt wiele w przypadku tworzenia nowego tagu. Jednym z potencjalnych problemów jest to, że tworzenie niestandardowego tagu lub czegoś podobnego nie będzie prawidłowym formatem RSS. Jeśli tworzysz dokument XML na własny użytek, nie ma to znaczenia, jeśli plik danych zostanie zweryfikowany. Oto co zrobiłem i powinieneś być w stanie nieco zmodyfikować dla przypadku użycia MailChimp. Daj mi znać, jeśli nadal potrzebujesz pomocy.

W functions.php (wewnątrz folderu tematycznego ... 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]; 
} 

W wp-includes/feed-rss2.php (I użyłem tagu obudowy, ale jeszcze nie zrobiłem obliczenia rozmiaru pliku, więc użyłem elementu zastępczego)

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