Estensione del feed RSS WordPress predefinito

A volte potrebbe essere necessario migliorare la tua presenza online e raggiungere un pubblico più ampio attraverso l'invio dei tuoi contenuti al di fuori del tuo sito web. Ad esempio potresti voler rendere i tuoi post disponibili sui più diffusi aggregatori di social network, o renderli disponibili su dispositivi mobili, o pubblicare i tuoi podcast audio / video negli archivi digitali.

Nella maggior parte di questi casi, è necessario personalizzare il feed RSS per renderlo adatto alla pubblicazione aggiungendo metadati personalizzati.

In questo tutorial vedremo come raggiungere questo obiettivo per due piattaforme principali: Flipboard e iTunes Store, ma il codice è facilmente personalizzabile per altre piattaforme e servizi web.


introduzione

Flipboard è un'applicazione di aggregazione di social network per dispositivi Android e iOS che trasferisce periodicamente il contenuto dal tuo sito Web e lo presenta in un formato di rivista in modo che gli utenti mobili possano leggere le tue notizie tramite l'app installata sul proprio smartphone o tablet. iTunes Store è un negozio online di media digitali in cui puoi pubblicare i tuoi podcast audio o video.

L'abbonamento ad entrambi i servizi è gratuito ma è soggetto ad approvazione, specialmente nel caso di Flipboard che sembra accettare solo siti web con un numero considerevole di lettori.

Entrambi ti consentono di pubblicare contenuti tramite il tuo feed RSS del blog, ma questo deve essere conforme alle loro specifiche. Fortunatamente WordPress consente agli sviluppatori di modificare la struttura del feed RSS di default.


Passaggio 1 Struttura del feed RSS di WordPress predefinito

Per impostazione predefinita, WordPress viene fornito con vari feed. In questo tutorial useremo il feed RSS 2.0 disponibile su http://example.com/?feed=rss2 o http://example.com/feed/ se usi i permalink. Questo feed è un semplice documento XML strutturato in questo modo:

   xmlns: content = "http://purl.org/rss/1.0/modules/content/" xmlns: wfw = "http://wellformedweb.org/CommentAPI/" xmlns: dc = "http://purl.org /dc/elements/1.1/ "xmlns: atom =" http://www.w3.org/2005/Atom "xmlns: sy =" http://purl.org/rss/1.0/modules/syndication/ "xmlns : slash = "http://purl.org/rss/1.0/modules/slash/">   Titolo del tuo blog  http://your-site-url.com la descrizione del tuo blog Gio, 27 set 2012 18:30:06 +0000 it-IT ogni ora 1 http://wordpress.org/?v=3.4.2   Post 1 Titolo http://your-site-url.com/post-1-slug http://your-site-url.com/post-1-slug#comments Mar, 15 maggio 2012 13:47:12 +0000 John Doe  http://your-site-url.com/?p=1  Aliquam rutrum placerat aliquet. Maecenas congue felat erat.

]]>
http://your-site-url.com/post-1-slug/feed 0
Post 2 Titolo http://your-site-url.com/post-2-slug http://your-site-url.com/post-2-slug#comments Mar, 15 maggio 2012 13:37:56 +0000 John Doe http://your-site-url.com/?p=2 Aliquam rutrum placerat aliquet

]]>
http://your-site-url.com/post-2-slug/feed 0

Come puoi vedere, ciascuno elemento rappresenta un post e contiene diversi sotto-elementi, ciascuno relativo a quel "componente" di posta. I principali sono:

  • </code> è il titolo del post</li> <li> <code><link></code> è il post permalink</li> <li> <code><pubDate></code> è la data di pubblicazione post nel formato RFC822 </li> <li> <code><dc:creator></code> è il nome dell'autore del post</li> <li> <code><dc:category></code> è un sottoinsieme di elementi, uno per ogni categoria di post</li> <li> <code><description></code> è il post estratto senza tag HTML</li> <li> <code><content:encoded></code> è l'intero contenuto del post con tag HTML</li> </ul> <hr> <h2> Passaggio 2 Personalizza il feed RSS per Flipboard</h2> <p>In base ai requisiti tecnici di Flipboard è possibile migliorare il contenuto.</p> <blockquote> <p>fornendo semantica aggiuntiva all'interno del markup dell'articolo, aggiungendo la possibilità di specificare virgolette, presentazioni e altri elementi di disegno</p> </blockquote> <p>Queste semantiche aggiuntive sono:</p> <ul> <li>Titolo e sottotitolo</li> <li>Tirare le citazioni</li> <li>Risorse immagine, video e audio</li> <li>Recenti</li> <li>Informazione geografica</li> </ul> <p>Possiamo implementare queste semantiche nel nostro feed RSS attraverso un plugin. Come detto, WordPress fornisce Hook specifici che ti permettono di modificare la struttura del feed RSS di default:</p> <ul> <li> <code>rss2_ns</code> - consente di aggiungere nuovi spazi dei nomi all'interno dell'elemento XML radice;</li> <li> <code>rss2_head</code> - consente di aggiungere per aggiungere tag nell'intestazione del feed;</li> <li> <code>the_content_feed</code> - consente di modificare il contenuto di ogni post visualizzato nel feed;</li> <li> <code>rss2_item</code> - consente di aggiungere nuovi sotto-elementi a ciascuno <code><item></code> (Post) elemento;</li> </ul> <p>Crea un nuovo file chiamato <strong>Flipboard-feed.php</strong>, apri il tuo editor di testo preferito e incolla questa intestazione del plugin:</p> <pre> <?php /* * Plugin Name: Flipboard RSS Feed * Plugin URI: http://www.studio404.it * Description: A plugin to customize the default RSS Feed according to Flipboard technical specifications. * Version: 1.0 * Author: Claudio Simeone * Author URI: http://www.studio404.it */ ?></pre> <p>Copia il file nel tuo <strong>/ Wp-content / plugins /</strong> directory e attivarlo dal <strong>plugin</strong> pagina di amministrazione.</p> <h3>Titolo e sottotitolo</h3> <p>Se vuoi aggiungere un titolo e un sottotitolo prima del contenuto del post, devi aggiungere qualcosa come:</p> <pre> <hgroup> <h1>Titolo del post</h1> <h2>Questo è il sottotitolo di Post</h2> </hgroup></pre> <p>Puoi aggiungere questo anche manualmente al contenuto del post, nell'editor di testo, ma questa non è una soluzione ottimale perché questi tag verranno visualizzati anche sul tuo sito web (a meno che tu non nascondi il contenuto <code>hgroup</code> elemento attraverso uno stile CSS). Quindi, per raggiungere questo automaticamente e <em>solo nel feed RSS</em>, è meglio usare il titolo del post per il <code><h1></code> elemento e un campo personalizzato per il <code><h2></code> sottotitolo.</p> <p>Nella tua pagina di modifica, aggiungi un <code>flipboard_subtitle</code> Campo personalizzato.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed.jpg"> <p>Aggiungi queste linee al nostro <strong>Flipboard RSS Feed</strong> collegare:</p> <pre> add_filter ('the_content_feed', 'flipboard_title_and_subtitle'); funzione flipboard_title_and_subtitle ($ content) global $ post; $ post_subtitle = get_post_meta ($ post-> ID, 'flipboard_subtitle', TRUE); // aggiungi hgroup solo se il campo personalizzato è impostato if ($ post_subtitle) $ hgroup = '<hgroup><h1>'. $ post-> post_title. '</h1>'; $ hgroup. = '<h2>'. $ post_subtitle. '</h2></hgroup>'; restituire $ hgroup. $ Content; else return $ content; </pre> <p>Ora, se pubblichi il post e aggiorni la fonte della tua pagina di feed RSS, vedrai il file <code>hgroup</code> tag prima del contenuto del post.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_2.jpg"> <h3>Tirare le citazioni</h3> <p>Per le citazioni pull puoi usare nel tuo contenuto dei post <code><blockquote></code> tag per indicare alcune parti del testo. Possiamo sfruttare il plugin per sostituire il <code><blockquote></code> con il <code><aside></code> etichetta.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_3.jpg"> <p>Aggiungi queste linee al nostro <strong>Flipboard RSS Feed</strong> collegare:</p> <pre> add_filter ('the_content_feed', 'flipboard_pull_quotes'); function flipboard_pull_quotes ($ content) // sostituisci il tag blockquote con return return str_replace ('blockquote>', 'aside>', $ content); </pre> <p>Ricarica la tua fonte di feed RSS, vedrai il nuovo <code><aside></code> etichetta.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_4.jpg"> <h3>Immagine</h3> <p>Per tutti questi elementi, seguiremo un altro metodo suggerito da Flipboard: invece di mettere la semantica direttamente nel Post Content, aggiungeremo un nuovo sottoinsieme di elementi Media RSS al <code><item></code> elemento.</p> <p>Media RSS è un'estensione RSS che migliora la pubblicazione di file multimediali nei feed RSS. File di immagini, video e audio e i loro metadati possono essere inclusi nei feed RSS grazie ai suoi elementi speciali.</p> <p>Nel nostro caso useremo il principale di questi: <code><media:content></code>.</p> <p>Inoltre, abbiamo anche bisogno dell'estensione GeoRSS per supportare le informazioni geografiche, quindi dobbiamo aggiungere gli spazi dei nomi corretti al feed RSS per renderlo valido.</p> <p>Aggiungi queste linee al nostro <strong>Flipboard RSS Feed</strong> collegare:</p> <pre> add_filter ('rss2_ns', 'flipboard_namespace'); function flipboard_namespace () echo 'xmlns: media = "http://search.yahoo.com/mrss/" xmlns: georss = "http://www.georss.org/georss"'; </pre> <p>E il risultato sarà:</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_5.jpg"> <p>Ora vogliamo aggiungere nel nostro feed RSS tutte le immagini allegate ai nostri messaggi. Dobbiamo fare qualcosa come:</p> <pre> <item> <!-- Full item markup omitted for brevity --> <media:content type="image/jpeg" media="image" url="http://media.example.com/kitten-landscape.jpg"> <media:description type="plain">Un adorabile gattino</media:description> <media:copyright>Carl Carlson</media:copyright> </media:content> </item></pre> <p>Il <code><media:content></code> elemento supporta due sottoelementi: <code><media:description></code> è la didascalia utilizzata per l'immagine e in WordPress è il titolo dell'immagine, mentre <code><media:copyright></code> contiene le informazioni sul copyright o il credito per l'autore dell'immagine.</p> <p>Ora lo implementeremo nel nostro feed WordPress. Scrivi un post e allega alcune immagini (nota che le immagini devono essere almeno 400 px nella dimensione più piccola):</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_6.jpg"> <p>Pubblica il post, quindi aggiungi queste righe al nostro <strong>Flipboard RSS Feed</strong> collegare:</p> <pre> add_filter ('rss2_item', 'flipboard_attached_images'); function flipboard_attached_images () global $ post; $ attachments = get_posts (array ('post_type' => 'allegato', 'post_mime_type' => 'immagine', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'exclude' => get_post_thumbnail_id ())); if ($ attachments) foreach ($ attachments as $ att) $ img_attr = wp_get_attachment_image_src ($ att-> ID, 'full'); ?> <media:content url="<?php echo $img_attr[0]; ?>"type ="<?php echo $att->post_mime_type; ?> "media =" immagine "> <media:description type="plain"><![CDATA[<?php echo $att->titolo del post; ?>]]></media:description> <media:copyright><?php echo get_the_author(); ?></media:copyright> </media:content> <?php </pre> <p>Ricarica la sorgente della tua pagina di feed RSS, vedrai a <code><media:content></code> elemento per ogni immagine allegata.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_7.jpg"> <p>Una breve nota sul <code><media:group></code> elemento: può essere utilizzato per fornire colture alternative e dimensioni della stessa immagine, ad esempio versioni verticale / orizzontale.</p> <h3>video</h3> <p>Per i file video Flipboard suggerisce di utilizzare questo codice:</p> <pre> <media:content url="http://www.example.com/lisa-saxophone.mp4" type="video/mp4"> <media:description type="plain">Lisa suona il sassofono</media:description> <media:thumbnail url="http://www.example.com/lisa-saxophone.jpg" /> <media:copyright>Carl Carlson</media:copyright> </media:content></pre> <p>Qui abbiamo un nuovo elemento secondario: <code><media:thumbnail></code>: specifica semplicemente un'immagine di anteprima per il video. Questo può essere un po 'complicato dal momento che abbiamo bisogno di un modo per creare una connessione diretta tra il video allegato e la sua immagine di anteprima e dire a WordPress che i due file sono collegati. Possiamo procedere in questo modo:</p> <ol> <li>Aggiungi un nuovo post e allega uno o più video / audio <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_8.jpg"> </li> <li>Nel <strong>Libreria multimediale</strong> pagina, caricare l'immagine di anteprima, prendere nota delle dimensioni dell'immagine e copiare l'URL del file immagine <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_9.jpg"> </li> <li>Nel <strong>Libreria multimediale</strong> trova il video, modificalo e incolla l'URL dell'immagine nel <strong>Descrizione</strong> campo e <em>anche</em> aggiungi la larghezza e l'altezza dell'immagine, ciascuna separata da un carattere della pipeline "<code>|</code>".Questo è necessario, per impostare le dimensioni dell'immagine corrette. <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_10.jpg"> </li> </ol> <p>Ora è il momento di inserire il video nel nostro feed RSS. Aggiungi queste linee al nostro <strong>Flipboard RSS Feed</strong> collegare:</p> <pre> add_filter ('rss2_item', 'flipboard_attached_videos'); function flipboard_attached_videos () global $ post; $ attachments = get_posts (array ('post_type' => 'attachment', 'post_mime_type' => 'video', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'exclude' => get_post_thumbnail_id ())); if ($ attachments) foreach ($ attachments as $ att) $ video_url = wp_get_attachment_url ($ att-> ID); $ parti = esplode ('|', $ att-> post_content); ?> <media:content url="<?php echo $video_url; ?>"type ="<?php echo $att->post_mime_type; ?> "> <media:description type="plain"><![CDATA[<?php echo $att->titolo del post; ?>]]></media:description> <media:copyright><?php echo get_the_author(); ?></media:copyright> <media:thumbnail url="<?php echo $parts[0]; ?>"/> </media:content> <?php </pre> <p>Ed ecco il risultato finale:</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_11.jpg"> <h3>Audio</h3> <p>Il codice Fliboard per i file audio è:</p> <pre> <media:content url="http://www.example.com/bartman.mp3" fileSize="1000" type="audio/mpeg" > <media:description type="plain">Lisa suona il sassofono</media:description> <media:thumbnail url="http://www.example.com/lisa-saxophone.jpg" /> <media:copyright>Carl Carlson</media:copyright> </media:content></pre> <p>Come puoi vedere, è sostanzialmente identico a quello video: quindi per collegare l'anteprima dell'immagine al file audio, possiamo usare lo stesso metodo che abbiamo seguito per i video.</p> <p>Quindi, aggiungi queste righe nel nostro plugin:</p> <pre> add_filter ('rss2_item', 'flipboard_attached_audio'); function flipboard_attached_audio () global $ post; $ attachments = get_posts (array ('post_type' => 'attachment', 'post_mime_type' => 'audio', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'exclude' => get_post_thumbnail_id ())); if ($ attachments) foreach ($ attachments as $ att) $ audio_url = wp_get_attachment_url ($ att-> ID); $ parti = esplode ('|', $ att-> post_content); $ headers = get_headers ($ audio_url, 1); $ filesize = $ headers ['Content-Length']; ?> <media:content url="<?php echo $audio_url; ?>"fileSize ="<?php echo $filesize; ?>"type ="<?php echo $att->post_mime_type; ?> "> <media:description type="plain"><![CDATA[<?php echo $att->titolo del post; ?>]]></media:description> <media:copyright><?php echo get_the_author(); ?></media:copyright> <media:thumbnail url="<?php echo $parts[0]; ?>"/> </media:content> <?php </pre> <h3>Recenti</h3> <p>Per aggiungere tutte le immagini allegate a un post in un formato di presentazione, è necessario aggiungere una parte del codice HTML al contenuto del feed RSS:</p> <pre> <section> <h1>I miei animali preferiti</h1> <figure> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_12.jpg"> <figcaption>I cuccioli sono carini</figcaption> </figure> <figure> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_12.jpg"> <figcaption>Anche i gattini</figcaption> </figure> <figure> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_12.jpg"> <figcaption>E le pecore del bambino si trasformano in pecora</figcaption> </figure> </section></pre> <p>Aggiungi queste righe nel nostro plugin:</p> <pre> add_filter ('the_content_feed', 'flipboard_slideshow'); function flipboard_slideshow ($ content) global $ post; $ attachments = get_posts (array ('post_type' => 'allegato', 'post_mime_type' => 'immagine', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'exclude' => get_post_thumbnail_id ())); if ($ attachments) $ slide = '<section><h1>'. $ post-> post_title. '</h1>'; foreach ($ attachments as $ att) $ img_attr = wp_get_attachment_image_src ($ att-> ID, 'full'); $ slide. = '<figure> <img src="//accentsconagua.com/img/' . $img_attr[0] . '"> <figcaption>'. $ att-> post_title. '</figcaption> </figure>'; $ slide. = '</section>'; restituire $ contenuti. $ Scorrevole; else return $ content; </pre> <p>E questo è il risultato:</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_12.jpg"> <h3>Informazione geografica</h3> <p>Per visualizzare le informazioni geografiche possiamo usare un campo personalizzato come abbiamo fatto per <code>hgroup</code> Sottotitolo.</p> <p>Quindi, nella tua pagina Modifica post, aggiungi un <code>flipboard_geo</code> Campo personalizzato e impostare il valore in un formato come questo: <code>45.256 -71.92</code> (un elenco completo di tag supportati è disponibile nella documentazione di GeoRSS).</p> <p>Aggiungi queste linee al nostro <strong>Flipboard RSS Feed</strong> collegare:</p> <pre> add_filter ('the_content_feed', 'flipboard_geo'); funzione flipboard_geo ($ content) global $ post; $ flipboard_geo = get_post_meta ($ post-> ID, 'flipboard_geo', TRUE); if ($ flipboard_geo) $ geo = '<georss:poin>'. $ flipboard_geo. '</georss:point>'; restituire $ contenuti. $ Geo; else return $ content; </pre> <h3>Invia il tuo feed a Flipboard</h3> <p>Una volta che il feed RSS è pronto, puoi richiedere a Flipboard di includerlo nelle loro fonti di notizie: devi contattare lo staff di Flipboard via email, incluso l'URL del feed RSS, Twitter, Facebook e i dettagli del sito web. Il personale esaminerà tutte le informazioni e ti farà sapere in 5 giorni lavorativi.</p> <hr> <h2> Passaggio 3 Personalizza il feed RSS per i tuoi podcast su iTunes</h2> <p>Per pubblicare i nostri podcast audio o video su Apple iTunes, abbiamo bisogno di formattare il feed RSS in base alle specifiche tecniche di iTunes tramite un nuovo plugin:</p> <p>Crea un nuovo file chiamato <strong>itunes-feed.php</strong>, apri il tuo editor di testo preferito e incolla questo:</p> <pre> <?php /* * Plugin Name: iTunes RSS Feed * Plugin URI: http://www.studio404.it * Description: A plugin to customize the default RSS Feed according to iTunes technical specifications. * Version: 1.0 * Author: Claudio Simeone * Author URI: http://www.studio404.it */ ?></pre> <p>Copia il file nel tuo <strong>/ Wp-content / plugins /</strong> directory e attivarlo nel <strong>plugin</strong> pagina di amministrazione.</p> <h3>Spazio dei nomi di iTunes</h3> <p>Per aggiungere lo spazio dei nomi di iTunes e supportare meta tag specifici di iTunes, possiamo usare il <code>rss2_ns</code> filtro:</p> <pre> add_filter ('rss2_ns', 'itunes_namespace'); // Aggiungi funzione namespace itunes_namespace () echo 'xmlns: itunes = "http://www.itunes.com/dtds/podcast-1.0.dtd"'; </pre> <h3>Tag head di iTunes</h3> <p>Il prossimo passo è aggiungere varie informazioni che aiuteranno iTunes a categorizzare meglio il tuo feed nel negozio e a mostrare informazioni dettagliate sul tuo canale podcast.</p> <p>Possiamo aggiungere tutte queste informazioni attraverso <code>rss2_head</code> filtro:</p> <pre> add_filter ('rss2_head', 'itunes_head'); function itunes_head () ?> <itunes:subtitle>Uno spettacolo su tutto</itunes:subtitle> <itunes:author>John Doe</itunes:author> <itunes:summary>All About Everything è uno spettacolo su tutto ... </itunes:summary> <itunes:owner> <itunes:name>John Doe</itunes:name> <itunes:email>john.doe@example.com</itunes:email> </itunes:owner> <itunes:image href="http://example.com/podcasts/everything/AllAboutEverything.jpg" /> <itunes:category text="Technology"> <itunes:category text="Gadgets"/> </itunes:category> <?php </pre> <p>Per brevità di questo tutorial, l'esempio è statico. Puoi modificare manualmente tutte le informazioni nel codice sorgente del plugin. Se preferisci renderlo dinamico, puoi creare una pagina delle opzioni per gestire tutte queste informazioni (vedi anche: <strong>Gestione dei plugin in WordPress 2.8 con register_setting ()</strong> di Ozh).</p> <h3>Tag di iTunes Post</h3> <p>Per ogni post, iTunes chiede di aggiungere alcuni tag aggiuntivi:</p> <pre> <itunes:author>John Doe</itunes:author> <itunes:subtitle>Un breve primer su spezie da tavola</itunes:subtitle> <itunes:summary>Questa settimana parliamo di sale e pepe shaker ... </itunes:summary> <itunes:image href="http://example.com/podcasts/everything/AllAboutEverything/Episode1.jpg" /> <enclosure url="http://example.com/podcasts/everything/AllAboutEverythingEpisode3.m4a" length="8727310" type="audio/x-m4a" /> <guid>http://example.com/podcasts/archive/aae20050615.m4a</guid> <itunes:duration>07:04</itunes:duration> <itunes:keywords>sale, pepe, shaker, eccitante</itunes:keywords></pre> <p>Possiamo gestire alcune di queste informazioni in questo modo:</p> <ul> <li> <strong>autore</strong>: useremo l'autore del post</li> <li> <strong>sottotitolo</strong>: useremo il titolo dell'allegato del post</li> <li> <strong>sommario</strong>: utilizzeremo la didascalia dell'allegato</li> <li> <strong>durata</strong>: useremo la descrizione dell'allegato</li> <li> <strong>parole chiave</strong>: useremo i tag Post</li> </ul> <p>Scrivi un nuovo post, aggiungi un titolo, alcuni contenuti e alcuni tag. Quindi, allega un file audio al post.</p> <p>Dopo aver caricato il file, aggiungi altre informazioni: Titolo, Didascalia e utilizza il campo Descrizione per specificare la durata.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_13.jpg"> <p>Aggiungi un'immagine in primo piano al post e infine pubblicala.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_14.jpg"> <p>Ora, aggiungi queste righe nel nostro <strong>itunes-feed.php</strong> collegare:</p> <pre> // aggiungi il supporto per Post Thumbnails che useremo per le copertine dei podcast add_theme_support ('post-thumbnails'); // iTunes preferisce immagini jpg quadrate di almeno 400 x 400 pixel add_image_size ('itunes-cover', 400, 400, true); function itunes_attached_audio () global $ post; $ attachments = get_posts (array ('post_type' => 'attachment', 'post_mime_type' => 'audio', // se usi i video, cambia qui 'posts_per_page' => -1, 'post_parent' => $ post- > ID, 'exclude' => get_post_thumbnail_id ())); // usa i post tags per itunes: parole chiave $ itunes_keywords_arr = get_the_tags (); if ($ itunes_keywords_arr) foreach ($ itunes_keywords_arr come $ tag) $ itunes_keywords. = $ tag-> nome. ''; $ itunes_keywords = substr_replace (trim ($ itunes_keywords), ", -1); // usa il pollice post per itunes: immagine $ post_thumbnail_id = get_post_thumbnail_id ($ post-> ID); $ itunes_image_arr = wp_get_attachment_image_src ($ post_thumbnail_id, ' itunes-cover '); if ($ attachments) foreach ($ attach as $ att) $ audio_url = wp_get_attachment_url ($ att-> ID); $ parts = explode (' | ', $ att-> post_content); $ headers = get_headers ($ audio_url, 1); $ filesize = $ headers ['Content-Length'];?> <itunes:author><?php echo get_the_author(); ?></itunes:author> <itunes:subtitle><?php echo $att->titolo del post; ?></itunes:subtitle> <itunes:summary><?php echo $att->post_excerpt; ?></itunes:summary> <itunes:image href="<?php echo $itunes_image_arr[0]; ?>"/> <enclosure url="<?php echo $audio_url; ?>"length ="<?php echo $filesize; ?>"type ="<?php echo $att->post_mime_type; ?> "/> <guid><?php the_permalink(); ?></guid> <itunes:duration><?php echo $att->POST_CONTENT; ?></itunes:duration> <itunes:keywords><?php echo $itunes_keywords; ?></itunes:keywords> <?php </pre> <p>Infine, pubblica il post e ricarica la sorgente della pagina di feed RSS.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_15.jpg"> <hr> <h2>In conclusione</h2> <p>Sebbene questo tutorial copra solo due piattaforme principali, grazie a WordPress Hooks è possibile personalizzare il feed RSS predefinito e renderlo adatto ad altre applicazioni Web esterne. Per ogni post è possibile allegare informazioni aggiuntive utilizzando le nuove estensioni RSS oppure è possibile migliorare i contenuti dei post fornendo un codice HTML aggiuntivo per soddisfare i requisiti di tutte le piattaforme che si desidera utilizzare per pubblicare i propri contenuti.</p> <hr> <h2>Riferimenti</h2> <ul> <li>Feed di esempio di Apple iTunes</li> <li>GeoRSS-Documentazione semplice</li> <li>Pubblicazione di contenuti su Flipboard tramite feed RSS</li> <li> <strong>Ganci e filtri WordPress</strong> <ul> <li>API plugin WordPress</li> <li>Informazioni su WordPress Hooks in <em>Aggiungi una colonna personalizzata nei messaggi e nella schermata di amministrazione dei tipi di post personalizzati</em></li> <li>La Guida per principianti alle azioni e ai filtri WordPress</li> </ul> </li> </ul> <div class="rek-block"> <center> <ins class="adsbygoogle" style="display:inline-block;width:580px;height:400px" data-ad-client="ca-pub-3810161443300697" data-ad-slot="9434875811"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </center> </div> <div class="h-alltags"> <a href="articles/code">Codice</a> </div> </div> </div> </div> </div> <div class="next_posts clearfix"> <div class="n_post"> <div class="next_posts-h1 left_nh1"><a href="/articles/webdesign/extending-the-processwire-admin-using-custom-modules.html">Estensione di ProcessWire Admin tramite i moduli personalizzati</a></div> <div class="next_posts-img" style="background-image: url('//accentsconagua.com/img/images_7/extending-the-processwire-admin-using-custom-modules.png');"></div> </div> <div class="n_post"> <div class="next_posts-h1 right_nh1"><a href="/articles/code/extending-simplepie-to-parse-unique-rss-feeds.html">Estensione di SimplePie per analizzare i feed RSS univoci</a></div> <div class="next_posts-img" style="background-image: url('//accentsconagua.com/img/images_27_7/extending-simplepie-to-parse-unique-rss-feeds_3.jpg');"></div> </div> </div> <footer> <div class="container"> <div class="footer-langs"> <ul class="site-langs-list"> <li><a href="https://www.accentsconagua.com"><i class="flag flag-DE"></i>Deutsch</a></li> <li><a href="https://fr.accentsconagua.com"><i class="flag flag-FR"></i>Français</a></li> <li><a href="https://nl.accentsconagua.com"><i class="flag flag-NL"></i>Nederlands</a></li> <li><a href="https://no.accentsconagua.com"><i class="flag flag-NO"></i>Norsk</a></li> <li><a href="https://sv.accentsconagua.com"><i class="flag flag-SE"></i>Svenska</a></li> <li><a href="https://it.accentsconagua.com"><i class="flag flag-IT"></i>Italiano</a></li> <li><a href="https://es.accentsconagua.com"><i class="flag flag-ES"></i>Español</a></li> <li><a href="https://ro.accentsconagua.com"><i class="flag flag-RO"></i>Românesc</a></li> </ul> </div> <div class="h-block"><a href="/">it.accentsconagua.com</a><div class="h-block-a"></div></div> <div class="footer-text"> Informazioni interessanti e consigli utili sulla programmazione. Sviluppo di siti web, web design e sviluppo web. Tutorial di Photoshop. Creazione di giochi per computer e applicazioni mobili. Diventa un programmatore professionista da zero. </div> </div> </footer> <div class="search"> <img class="searchico" src="//accentsconagua.com/img/search.svg" alt=""> </div> <div class="modal"> <div class="modal-content"> <span class="close-button">×</span> <input class="searchmain" type="text" id="search-input" placeholder="Ricerca..."> <ul class="searchli" id="results-container"></ul> </div> </div> <link rel="stylesheet" href="css/flags.css"> <link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.css" /> <script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.js"></script> <script> window.addEventListener("load", function(){ window.cookieconsent.initialise({ "palette": { "popup": { "background": "#edeff5", "text": "#838391" }, "button": { "background": "#4b81e8" } }, "theme": "classic", "position": "bottom-right" })}); </script> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <script src="js/scripts.min.js"></script> <script src="js/common.js"></script> <link rel="stylesheet" href="css/fontawesome-all.min.css"> <script> var modal = document.querySelector(".modal"); var trigger = document.querySelector(".search"); var closeButton = document.querySelector(".close-button"); function toggleModal() { modal.classList.toggle("show-modal"); } function windowOnClick(event) { if (event.target === modal) { toggleModal(); } } trigger.addEventListener("click", toggleModal); closeButton.addEventListener("click", toggleModal); window.addEventListener("click", windowOnClick); </script> <script src="https://unpkg.com/simple-jekyll-search@1.5.0/dest/simple-jekyll-search.min.js"></script> <script> SimpleJekyllSearch({ searchInput: document.getElementById('search-input'), resultsContainer: document.getElementById('results-container'), json: '/search.json', searchResultTemplate: '<li><a href="{url}">{title}</a></li>' }) </script> <script src="jquery.unveil2.min.js"></script> <script> $('img').unveil(); </script> </body> </html>