Extinderea fluxului RSS WordPress implicit

Uneori este posibil să fie nevoie să vă îmbunătățiți prezența online și să ajungeți la o audiență mai largă prin trimiterea conținutului în afara site-ului dvs. web. De exemplu, este posibil să doriți să puneți postările la cele mai populare agregatoare de rețele sociale sau să le puneți la dispoziție pe dispozitive mobile sau să publicați podcasturile audio / video în magazinele digitale.

În cele mai multe dintre aceste cazuri, este necesar să personalizați fluxul RSS pentru al face potrivit pentru publicare prin adăugarea de metadate personalizate.

În acest tutorial vom vedea cum să atingem acest obiectiv pentru două platforme majore: Flipboard și iTunes Store, dar codul este ușor de personalizat pentru alte platforme și servicii web.


Introducere

Flipboard este o aplicație de agregare a rețelelor sociale pentru dispozitivele Android și iOS care prelucrează periodic conținutul de pe site-ul dvs. și îl prezintă într-un format de reviste, astfel încât utilizatorii de dispozitive mobile să poată citi știrile prin aplicația instalată pe smartphone-ul sau tableta lor. iTunes Store este un magazin media digital online, unde puteți să vă publicați podcasturile audio sau video.

Abonamentul la ambele servicii este gratuit, dar este supus aprobării, în special în cazul Flipboard-ului care pare să accepte numai site-uri Web cu un număr semnificativ de cititori.

Ambele vă permit să publicați conținut prin blogul dvs. RSS Feed, dar acest lucru trebuie să fie în conformitate cu specificațiile lor. Din fericire, WordPress permite dezvoltatorilor să modifice structura fluxului RSS implicit.


Pasul 1 Structura WordPress implicită pentru RSS

Implicit, WordPress vine cu diverse fluxuri. În acest tutorial vom folosi feedul RSS 2.0 disponibil la http://example.com/?feed=rss2 sau http://example.com/feed/ dacă folosiți permalinks. Acest feed este un document XML simplu structurat astfel:

   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/">   Titlul dvs. de blog  http://your-site-url.com Descrierea blogului Thu, 27 Sep 2012 18:30:06 +0000 en-US pe oră 1 http://wordpress.org/?v=3.4.2   Titlul postului 1 http://your-site-url.com/post-1-slug http://your-site-url.com/post-1-slug#comments Marți, 15 Mai 2012 13:47:12 +0000 John Doe  http://your-site-url.com/?p=1  Aliquam rutrum placerat aliquet. Maecenas conchizează felis erat.

]]>
http://your-site-url.com/post-1-slug/feed 0
Titlul postului 2 http://your-site-url.com/post-2-slug http://your-site-url.com/post-2-slug#comments Tue, 15 Mai 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

După cum puteți vedea, fiecare element reprezintă un mesaj și conține mai multe subelemente, fiecare legată de acea componentă "Post". Principalele sunt:

  • </code> este titlul postului</li> <li> <code><link></code> este postul permanent</li> <li> <code><pubDate></code> este data postării publicării în format RFC822 </li> <li> <code><dc:creator></code> este numele autorului postului</li> <li> <code><dc:category></code> este un subset de elemente, unul pentru fiecare categorie post</li> <li> <code><description></code> este extrasul post fără etichete HTML</li> <li> <code><content:encoded></code> este întregul conținut al postării cu etichete HTML</li> </ul> <hr> <h2> Pasul 2 Personalizați fluxul RSS pentru Flipboard</h2> <p>Conform cerințelor tehnice Flipboard, este posibilă îmbunătățirea conținutului.</p> <blockquote> <p>prin furnizarea de semantică suplimentară în cadrul marcării articolului, adăugând capacitatea de a specifica citate de tragere, slideshow-uri și alte elemente de design</p> </blockquote> <p>Aceste semantici suplimentare sunt:</p> <ul> <li>Titlu și subtitrare</li> <li>Trageți citate</li> <li>Imagini, video și audio</li> <li>Diapozitivele</li> <li>Informații geografice</li> </ul> <p>Putem implementa aceste semantici în feed-ul nostru RSS printr-un plug-in. Așa cum a spus, WordPress oferă cârlige specifice care vă permit să modificați structura fluxului RSS implicit:</p> <ul> <li> <code>rss2_ns</code> - permite adăugarea de noi spații de nume în interiorul elementului XML rădăcină;</li> <li> <code>rss2_head</code> - permite adăugarea pentru a adăuga etichete în antetul feedului;</li> <li> <code>the_content_feed</code> - permite modificarea conținutului fiecărui mesaj afișat în feed;</li> <li> <code>rss2_item</code> - permite adăugarea de noi subelemente la fiecare <code><item></code> (Post) element;</li> </ul> <p>Creați un fișier nou numit <strong>Flipboard-feed.php</strong>, deschideți editorul dvs. de text preferat și inserați acest antet de 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ți fișierul în memoria dvs. <strong>/ Wp-content / plugins /</strong> director și să o activeze din <strong>Plugin-uri</strong> pagina de administrare.</p> <h3>Titlu și subtitrare</h3> <p>Dacă doriți să adăugați un Titlu și o Subtitlu înaintea Conținutului Post, trebuie să adăugați ceva de genul:</p> <pre> <hgroup> <h1>Titlul postului</h1> <h2>Aceasta este subtitlul Post</h2> </hgroup></pre> <p>Puteți adăuga acest lucru și manual la postul de conținut, în editorul de text, dar aceasta nu este o soluție optimă, deoarece aceste etichete vor fi de asemenea afișate pe site-ul dvs. web (cu excepția cazului în care nu ascundeți <code>hgroup</code> element printr-un stil CSS). Deci, pentru a realiza acest lucru în mod automat și <em>numai în RSS Feed</em>, este mai bine să utilizați titlul postului pentru <code><h1></code> element și un câmp particularizat pentru <code><h2></code> subtitlu.</p> <p>În pagina dvs. de editare postare, adăugați o <code>flipboard_subtitle</code> Câmp obligatoriu.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed.jpg"> <p>Adăugați aceste linii la adresa noastră <strong>Flipboard RSS Feed</strong> conecteaza:</p> <pre> add_filter ('the_content_feed', 'flipboard_title_and_subtitle'); funcția flipboard_title_and_subtitle (conținut $) global $ post; $ post_subtitle = get_post_meta ($ post-> ID, 'flipboard_subtitle', TRUE); // adăugați hgroup numai dacă câmpul personalizat este setat dacă ($ post_subtitle) $ hgroup = '<hgroup><h1>". $ post-> post_title. '</h1>„; $ hgroup. = '<h2>". $ post_subtitle. '</h2></hgroup>„; returnați $ hgroup. conținut de $; altceva return $ content; </pre> <p>Acum, dacă publicați postarea și actualizați sursa de pagini RSS Feed, veți vedea <code>hgroup</code> înainte de postarea conținutului.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_2.jpg"> <h3>Trageți citate</h3> <p>Pentru cotații de tragere puteți utiliza în postul dvs. de conținut <code><blockquote></code> eticheta pentru a indica anumite părți ale textului. Putem profita de pluginul pentru a înlocui <code><blockquote></code> cu <code><aside></code> etichetă.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_3.jpg"> <p>Adăugați aceste linii la adresa noastră <strong>Flipboard RSS Feed</strong> conecteaza:</p> <pre> add_filter ('the_content_feed', 'flipboard_pull_quotes'); functie flipboard_pull_quotes ($ content) // inlocuieste tag-ul blocquote cu inversul return str_replace ('blockquote' ',' aside '', $ content); </pre> <p>Reîncărcați sursa paginii de feed RSS, veți vedea noul <code><aside></code> etichetă.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_4.jpg"> <h3>Imagine</h3> <p>Pentru toate aceste elemente, vom urma o altă metodă sugerată de Flipboard: în loc să punem semantica direct în Post Content, vom adăuga un nou subset de elemente RSS RSS la <code><item></code> element.</p> <p>Media RSS este o extensie RSS care îmbunătățește publicarea de fișiere multimedia în fluxuri RSS. Fișierele imagine, video și audio și metadatele acestora pot fi incluse în fluxurile RSS datorită elementelor speciale.</p> <p>În cazul nostru vom folosi principalul dintre ele: <code><media:content></code>.</p> <p>În plus, avem nevoie de extensia GeoRSS pentru a susține informațiile geografice, așa că trebuie să adăugăm spațiile de nume corecte în RSS Feed pentru ao face valabilă.</p> <p>Adăugați aceste linii la adresa noastră <strong>Flipboard RSS Feed</strong> conecteaza:</p> <pre> add_filter ('rss2_ns', 'flipboard_namespace'); funcția flipboard_namespace () echo 'xmlns: media = "http://search.yahoo.com/mrss/" xmlns: georss = "http://www.georss.org/georss"'; </pre> <p>Rezultatul va fi:</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_5.jpg"> <p>Acum vrem să adăugăm în feed-ul nostru RSS toate imaginile atașate la postările noastre. Trebuie să facem ceva de genul:</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 pisoi adorabil</media:description> <media:copyright>Carl Carlson</media:copyright> </media:content> </item></pre> <p> <code><media:content></code> Elementul suporta doua sub-elemente: <code><media:description></code> este legenda folosită pentru imagine și în WordPress este titlul imaginii, în timp ce <code><media:copyright></code> conține informațiile privind drepturile de autor sau creditul pentru autorul imaginii.</p> <p>Acum, vom implementa acest lucru în feed-ul nostru WordPress. Scrieți un mesaj și atașați câteva imagini la acesta (rețineți că imaginile trebuie să aibă cel puțin 400 de pixeli în cea mai mică dimensiune):</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_6.jpg"> <p>Publicați mesajul, apoi adăugați aceste linii la adresa noastră <strong>Flipboard RSS Feed</strong> conecteaza:</p> <pre> add_filter ('rss2_item', 'flipboard_attached_images'); funcția flipboard_attached_images () global $ post; $ attachments = get_posts (array ('post_type' => 'atașament', 'post_mime_type' => 'image', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'exclude' => get_post_thumbnail_id ())); dacă ($ atașamente) foreach (atașamente ca $ att) $ img_attr = wp_get_attachment_image_src ($ att-> ID, "plin"); ?> <media:content url="<?php echo $img_attr[0]; ?>"type ="<?php echo $att->post_mime_type; ?> "mediu =" imagine "> <media:description type="plain"><![CDATA[<?php echo $att->POST_TITLE; ?>]]></media:description> <media:copyright><?php echo get_the_author(); ?></media:copyright> </media:content> <?php </pre> <p>Reîncărcați sursa paginii de feed RSS, veți vedea o <code><media:content></code> element pentru fiecare imagine atașată.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_7.jpg"> <p>O scurtă notă despre <code><media:group></code> element: poate fi folosit pentru a oferi culturi și dimensiuni alternative ale aceleiași imagini, de exemplu versiuni portret / peisaj.</p> <h3>Video</h3> <p>Pentru fișierele video Flipboard sugerează utilizarea acestui cod:</p> <pre> <media:content url="http://www.example.com/lisa-saxophone.mp4" type="video/mp4"> <media:description type="plain">Lisa interpretează saxofonul</media:description> <media:thumbnail url="http://www.example.com/lisa-saxophone.jpg" /> <media:copyright>Carl Carlson</media:copyright> </media:content></pre> <p>Aici avem un nou sub-element: <code><media:thumbnail></code>: specifică pur și simplu o imagine de previzualizare pentru videoclip. Acest lucru poate fi un pic dificil, deoarece avem nevoie de o modalitate de a crea o conexiune directă între videoclipul atașat și imaginea lui de previzualizare și spuneți WordPress că cele două fișiere sunt conectate. Putem proceda astfel:</p> <ol> <li>Adăugați o postare nouă și atașați unul sau mai multe videoclipuri / audio <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_8.jpg"> </li> <li>În <strong>Biblioteca media</strong> , încărcați imaginea de previzualizare, luați notă de dimensiunile imaginii și copiați adresa URL a fișierului imagine <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_9.jpg"> </li> <li>În <strong>Biblioteca media</strong> găsiți videoclipul, editați-l și inserați adresa URL a imaginii în <strong>Descriere</strong> câmp și <em>de asemenea</em> adăugați lățimea și înălțimea imaginii, fiecare separat de un caracter de conducte "<code>|</code>"Este necesar să setați dimensiunile corecte ale imaginii. <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_10.jpg"> </li> </ol> <p>Acum este momentul să plasați videoclipul în Feed-ul nostru RSS. Adăugați aceste linii la adresa noastră <strong>Flipboard RSS Feed</strong> conecteaza:</p> <pre> add_filter ('rss2_item', 'flipboard_attached_videos'); funcția flipboard_attached_videos () global $ post; $ attachments = get_posts (array ('post_type' => 'atașament', 'post_mime_type' => 'video', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'exclude' => get_post_thumbnail_id ())); dacă ($ atașamente) foreach (atașamente $ ca $ att) $ video_url = wp_get_attachment_url ($ att-> ID); $ parts = explode ('|', $ at-> post_content); ?> <media:content url="<?php echo $video_url; ?>"type ="<?php echo $att->post_mime_type; ?> "> <media:description type="plain"><![CDATA[<?php echo $att->POST_TITLE; ?>]]></media:description> <media:copyright><?php echo get_the_author(); ?></media:copyright> <media:thumbnail url="<?php echo $parts[0]; ?>"/> </media:content> <?php </pre> <p>Iată rezultatul final:</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_11.jpg"> <h3>Audio</h3> <p>Codul Fliboard pentru fișierele audio este:</p> <pre> <media:content url="http://www.example.com/bartman.mp3" fileSize="1000" type="audio/mpeg" > <media:description type="plain">Lisa interpretează saxofonul</media:description> <media:thumbnail url="http://www.example.com/lisa-saxophone.jpg" /> <media:copyright>Carl Carlson</media:copyright> </media:content></pre> <p>După cum puteți vedea, este substanțial identic cu cel video: astfel încât să atașăm previzualizarea imaginii la fișierul audio, putem folosi aceeași metodă pe care am urmat-o pentru videoclipurile.</p> <p>Deci, adăugați aceste linii în pluginul nostru:</p> <pre> add_filter ('rss2_item', 'flipboard_attached_audio'); funcția flipboard_attached_audio () global $ post; $ attachments = get_posts (array ('post_type' => 'atașament', 'post_mime_type' => 'audio', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'exclude' => get_post_thumbnail_id ())); dacă ($ atașamente) foreach ($ atasamente ca $ att) $ audio_url = wp_get_attachment_url ($ att-> ID); $ parts = explode ('|', $ at-> post_content); $ headers = get_headers ($ audio_url, 1); $ fileize = $ anteturi ['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->POST_TITLE; ?>]]></media:description> <media:copyright><?php echo get_the_author(); ?></media:copyright> <media:thumbnail url="<?php echo $parts[0]; ?>"/> </media:content> <?php </pre> <h3>Diapozitivele</h3> <p>Pentru a adăuga toate imaginile atașate la un mesaj într-un format de prezentare, trebuie să adăugăm o parte a codului HTML la fluxul RSS.</p> <pre> <section> <h1>Animalele mele preferate</h1> <figure> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_12.jpg"> <figcaption>Puii sunt drăguți</figcaption> </figure> <figure> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_12.jpg"> <figcaption>Sunt și pisoii</figcaption> </figure> <figure> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_12.jpg"> <figcaption>Și oile copiilor cresc în oaie</figcaption> </figure> </section></pre> <p>Adăugați aceste linii în pluginul nostru:</p> <pre> add_filter ('the_content_feed', 'flipboard_slideshow'); funcția flipboard_slideshow ($ content) global $ post; $ attachments = get_posts (array ('post_type' => 'atașament', 'post_mime_type' => 'image', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'exclude' => get_post_thumbnail_id ())); dacă ($ atașamente) $ slide = '<section><h1>". $ post-> post_title. '</h1>„; foreach ($ atașamente ca $ att) $ img_attr = wp_get_attachment_image_src ($ att-> ID, "plin"); $ slide. = '<figure> <img src="//accentsconagua.com/img/' . $img_attr[0] . '"> <figcaption>". $ att-> post_title. '</figcaption> </figure>„; $ slide. = '</section>„; returneaza continutul $. slide-$; altceva return $ content; </pre> <p>Și acesta este rezultatul:</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_12.jpg"> <h3>Informații geografice</h3> <p>Pentru a afișa informații geografice, putem folosi un câmp particularizat ca și noi <code>hgroup</code> Subtitlu.</p> <p>Deci, în pagina Edit Post, adăugați o <code>flipboard_geo</code> Câmp obligatoriu și setați valoarea într-un format ca acesta: <code>45.256 -71.92</code> (o listă completă a etichetelor acceptate este disponibilă în documentația GeoRSS).</p> <p>Adăugați aceste linii la adresa noastră <strong>Flipboard RSS Feed</strong> conecteaza:</p> <pre> add_filter ('the_content_feed', 'flipboard_geo'); funcția flipboard_geo ($ content) global $ post; $ flipboard_geo = get_post_meta ($ post-> ID, 'flipboard_geo', TRUE); dacă ($ flipboard_geo) $ geo = '<georss:poin>". $ flipboard_geo. '</georss:point>„; returneaza continutul $. $ Geo; altceva return $ content; </pre> <h3>Trimiteți feedul dvs. în Flipboard</h3> <p>Odată ce Feed-ul RSS este gata, puteți solicita Flipboard-ul să îl includă în sursele de știri: trebuie să contactați personalul Flipboard prin e-mail, inclusiv adresa URL a fluxului RSS, Twitter, Facebook și detaliile site-ului. Personalul va revizui toate informațiile și vă va informa în 5 zile lucrătoare.</p> <hr> <h2> Pasul 3 Personalizați fluxul RSS pentru podcast-urile dvs. pe iTunes</h2> <p>Pentru a publica podcasturile noastre audio sau video pe Apple iTunes, trebuie să formatem fluxul RSS conform specificațiilor tehnice iTunes printr-un plugin nou:</p> <p>Creați un fișier nou numit <strong>itunes-feed.php</strong>, deschideți editorul dvs. de text preferat și lipiți-l pe acesta:</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ți fișierul în memoria dvs. <strong>/ Wp-content / plugins /</strong> director și să o activați în <strong>Plugin-uri</strong> pagina de administrare.</p> <h3>Spațiul de nume iTunes</h3> <p>Pentru a adăuga spațiul de nume iTunes și pentru a sprijini meta tagurile specifice iTunes, putem folosi <code>rss2_ns</code> filtru:</p> <pre> add_filter ('rss2_ns', 'itunes_namespace'); // Adaugă funcția namespace itunes_namespace () echo 'xmlns: itunes = "http://www.itunes.com/dtds/podcast-1.0.dtd"'; </pre> <h3>iTunes Head Tags</h3> <p>Pasul următor este să adăugați diverse informații care vor ajuta iTunes să vă clasifice mai bine feedul în magazin și să afișeze informații detaliate despre canalul dvs. podcast.</p> <p>Putem adăuga toate aceste informații prin <code>rss2_head</code> filtru:</p> <pre> add_filter ('rss2_head', 'itunes_head'); funcția itunes_head () ?> <itunes:subtitle>Un spectacol despre tot</itunes:subtitle> <itunes:author>John Doe</itunes:author> <itunes:summary>Totul despre Tot este un spectacol despre tot ... </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>Din motive de coerență pentru acest tutorial, exemplul este static. Puteți modifica manual toate informațiile în codul sursă al pluginului. Dacă preferați să o faceți dinamică, puteți crea o pagină de opțiuni pentru a gestiona toate aceste informații (consultați și: <strong>Manipularea pluginurilor în WordPress 2.8 cu register_setting ()</strong> de Ozh).</p> <h3>iTunes Post Taguri</h3> <p>Pentru fiecare post, iTunes solicită adăugarea unor etichete suplimentare:</p> <pre> <itunes:author>John Doe</itunes:author> <itunes:subtitle>Un grund scurt pe condimentele de masă</itunes:subtitle> <itunes:summary>În această săptămână vorbim despre agitatoare de sare și piper ... </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>sare, piper, agitator</itunes:keywords></pre> <p>Putem rezolva câteva dintre aceste informații:</p> <ul> <li> <strong>autor</strong>: vom folosi autorul Mesaj</li> <li> <strong>subtitlu</strong>: vom folosi Titlul atașamentului postului</li> <li> <strong>rezumat</strong>: vom folosi legenda atașamentului</li> <li> <strong>durată</strong>: vom folosi Descrierea atașamentului</li> <li> <strong>Cuvinte cheie</strong>: vom folosi etichetele Post</li> </ul> <p>Scrieți un mesaj nou, adăugați un titlu, un anumit conținut și unele etichete. Apoi, atașați un fișier audio la post.</p> <p>După încărcarea fișierului, adăugați alte informații: Titlu, Titlu și folosiți câmpul Descriere pentru a specifica durata.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_13.jpg"> <p>Adăugați o imagine recomandată în Post și publicați-o în cele din urmă.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_14.jpg"> <p>Acum, adăugați aceste linii în lista noastră <strong>itunes-feed.php</strong> conecteaza:</p> <pre> // adăugați suport pentru Post Thumbnails vom folosi pentru coperți podcast add_theme_support ('post-thumbnails'); // iTunes preferă imaginile pătrat .jpg care au cel puțin 400 x 400 pixeli add_image_size ('itunes-cover', 400, 400, true); funcția itunes_attached_audio () global $ post; $ attachments = get_posts (array ('post_type' => 'atașament', 'post_mime_type' => 'audio', // dacă folosești videoclipuri, schimbă aici 'posts_per_page' => > ID, "excludeți" => get_post_thumbnail_id ())); // utilizați etichetele post pentru itunes: keywords $ itunes_keywords_arr = get_the_tags (); dacă ($ itunes_keywords_arr) foreach ($ itunes_keywords_arr ca $ tag) $ itunes_keywords. = $ tag-> nume. ''; $ itunes_keywords = substr_replace (trim ($ itunes_keywords)); -1); / / folosiți postul deget pentru itunes: image $ post_thumbnail_id = get_post_thumbnail_id ($ post-> ID); $ itunes_image_arr = wp_get_attachment_image_src ($ post_thumbnail_id; ($ attachments) foreach ($ atașamente ca $ 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->POST_TITLE; ?></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>În cele din urmă, publicați postarea și reîncărcați sursa paginii de feed RSS.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_15.jpg"> <hr> <h2>In concluzie</h2> <p>Deși acest tutorial acoperă doar două platforme principale, datorită WordPress Hooks este posibil să personalizați feedul RSS implicit și să îl potriviți pentru alte aplicații Web externe. Pentru fiecare post poți să atribui informații suplimentare utilizând noile extensii RSS sau poți îmbunătăți conținutul postând un cod HTML suplimentar care să îndeplinească cerințele tuturor platformelor pe care vrei să le folosești pentru a-ți publica conținutul.</p> <hr> <h2>Referințe</h2> <ul> <li>Apple iTunes Feed example</li> <li>GeoRSS-Documentație simplă</li> <li>Publicarea conținutului pe Flipboard prin RSS Feeds</li> <li> <strong>Cârlige și filtre WordPress</strong> <ul> <li>WordPress Plugin API</li> <li>Despre WordPress Hooks în <em>Adăugați o coloană personalizată în ecranul Administrări pentru postări și tipuri personalizate de postări</em></li> <li>Ghidul începătorului pentru acțiunile și filtrele 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">Cod</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">Extinderea administratorului ProcessWire utilizând module personalizate</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">Extinderea SimplePie pentru analizarea fluxurilor RSS unice</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="/">ro.accentsconagua.com</a><div class="h-block-a"></div></div> <div class="footer-text"> Informații interesante și sfaturi utile privind programarea. Dezvoltarea de site-uri, web design si dezvoltare web. Tutoriale Photoshop. Crearea de jocuri pe calculator și aplicații mobile. Deveniți un programator profesionist de la 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="Căutare..."> <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>