Extendiendo el RSS Feed de WordPress predeterminado

En ocasiones, es posible que deba mejorar su presencia en línea y llegar a un público más amplio mediante el envío de su contenido fuera de su sitio web. Por ejemplo, es posible que desee que sus publicaciones estén disponibles en los agregadores de redes sociales más populares, o que estén disponibles en dispositivos móviles, o que publique sus podcasts de audio / video en tiendas digitales..

En la mayoría de estos casos, es necesario personalizar la fuente RSS para que sea adecuada para su publicación mediante la adición de metadatos personalizados.

En este tutorial veremos cómo lograr este objetivo para dos plataformas principales: Flipboard y la tienda iTunes Store, pero el código es fácilmente personalizable para otras plataformas y servicios web..


Introducción

Flipboard es una aplicación de agregación de redes sociales para dispositivos Android e iOS que toma periódicamente el contenido de su sitio web y lo presenta en formato de revista para que los usuarios de dispositivos móviles puedan leer sus noticias a través de la aplicación instalada en su teléfono inteligente o tableta. iTunes Store es una tienda de medios digitales en línea donde puedes publicar tus podcasts de audio o video.

La suscripción a ambos servicios es gratuita, pero está sujeta a aprobación, especialmente en el caso de Flipboard que parece aceptar solo sitios web con un número considerable de lectores..

Ambos le permiten publicar contenido a través de la fuente RSS de su blog, pero esto debe cumplir con sus especificaciones. Afortunadamente, WordPress permite a los desarrolladores modificar la estructura predeterminada de RSS Feed.


Paso 1 La estructura predeterminada de la fuente RSS de WordPress

Por defecto, WordPress viene con varias fuentes. En este tutorial usaremos el feed RSS 2.0 disponible en http://example.com/?feed=rss2 o http://example.com/feed/ Si usas permalinks. Este feed es un simple documento XML estructurado así:

   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/">   El título de tu blog  http://your-site-url.com tu Blog Descripción Jue, 27 sep 2012 18:30:06 +0000 en-US cada hora 1 http://wordpress.org/?v=3.4.2   Post 1 Título http://your-site-url.com/post-1-slug http://your-site-url.com/post-1-slug#comments Martes, 15 de mayo de 2012 13:47:12 +0000 John Doe  http://your-site-url.com/?p=1  Aliquam rutrum placerat aliquet. Maecenas congue felis erat.

]]>
http://your-site-url.com/post-1-slug/feed 0
Título 2 del puesto http://your-site-url.com/post-2-slug http://your-site-url.com/post-2-slug#comments Martes, 15 de mayo de 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

Como puedes ver, cada uno el elemento representa una publicación y contiene varios subelementos, cada uno relacionado con esa publicación "componente". Los principales son:

  • </code> es el titulo del post</li> <li> <code><link></code> es el post permalink</li> <li> <code><pubDate></code> es la fecha de publicación posterior en formato RFC822 </li> <li> <code><dc:creator></code> es el nombre del autor del post</li> <li> <code><dc:category></code> es un subconjunto de elementos, uno para cada categoría de publicación</li> <li> <code><description></code> Es el extracto post sin etiquetas HTML</li> <li> <code><content:encoded></code> Es el contenido completo de la publicación con etiquetas HTML.</li> </ul> <hr> <h2> Paso 2 Personaliza la fuente RSS para Flipboard</h2> <p>De acuerdo con los requisitos técnicos de Flipboard es posible mejorar el contenido..</p> <blockquote> <p>proporcionando semántica adicional dentro de la marca del artículo, agregando la capacidad de especificar citas de extracción, presentaciones de diapositivas y otros elementos de diseño</p> </blockquote> <p>Estas semánticas adicionales son:</p> <ul> <li>Título y Subtítulo</li> <li>Sacar cotizaciones</li> <li>Imagen, video y audio</li> <li>Presentaciones de diapositivas</li> <li>Información geográfica</li> </ul> <p>Podemos implementar estas semánticas en nuestra fuente RSS a través de un complemento. Como se dijo, WordPress proporciona ganchos específicos que le permiten modificar la estructura de la fuente RSS predeterminada:</p> <ul> <li> <code>rss2_ns</code> - permite agregar nuevos espacios de nombres dentro del elemento XML raíz;</li> <li> <code>rss2_head</code> - permite agregar para agregar etiquetas en el encabezado del feed;</li> <li> <code>the_content_feed</code> - permite modificar el contenido de cada publicación mostrada en el feed;</li> <li> <code>rss2_item</code> - Permite añadir nuevos subelementos a cada uno. <code><item></code> (Post) elemento;</li> </ul> <p>Crear un nuevo archivo llamado <strong>flipboard-feed.php</strong>, Ábrelo tu editor de texto favorito y pega este encabezado 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 el archivo en tu <strong>/ wp-content / plugins /</strong> directorio y activarlo desde el <strong>Complementos</strong> Página de administrador.</p> <h3>Título y Subtítulo</h3> <p>Si desea agregar un título y un subtítulo antes del contenido de la publicación, debe agregar algo como:</p> <pre> <hgroup> <h1>Título de la publicación</h1> <h2>Este es el subtítulo del post.</h2> </hgroup></pre> <p>Puede agregar esto también manualmente al Contenido de la publicación, en el editor de texto, pero esa no es una solución óptima porque estas etiquetas también se mostrarán en su sitio web (a menos que no oculte la <code>hgroup</code> elemento a través de un estilo CSS). Entonces, para lograr esto automáticamente y <em>solo en el feed RSS</em>, es mejor usar el título del Post para el <code><h1></code> elemento y un campo personalizado para el <code><h2></code> subtitular.</p> <p>En su página Editar publicación, agregue un <code>flipboard_subtitle</code> Campo personalizado.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed.jpg"> <p>Añade estas líneas a nuestro <strong>Flipboard RSS Feed</strong> enchufar:</p> <pre> add_filter ('the_content_feed', 'flipboard_title_and_subtitle'); función flipboard_title_and_subtitle ($ content) global $ post; $ post_subtitle = get_post_meta ($ post-> ID, 'flipboard_subtitle', TRUE); // agregar hgroup solo si el campo personalizado está configurado si ($ post_subtitle) $ hgroup = '<hgroup><h1>'. $ post-> post_title. '</h1>'; $ hgroup. = '<h2>'. $ post_subtitle. '</h2></hgroup>'; devuelve $ hgroup. $ contenido; else return $ content; </pre> <p>Ahora, si publica la publicación y actualiza la fuente de la fuente de RSS, verá el <code>hgroup</code> etiqueta antes de publicar contenido.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_2.jpg"> <h3>Cotizaciones de extracción</h3> <p>Para las citas de extracción puede utilizar en su Contenido de la publicación <code><blockquote></code> etiqueta para señalar algunas partes del texto. Podemos aprovechar el plugin para reemplazar el <code><blockquote></code> con el <code><aside></code> etiqueta.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_3.jpg"> <p>Añade estas líneas a nuestro <strong>Flipboard RSS Feed</strong> enchufar:</p> <pre> add_filter ('the_content_feed', 'flipboard_pull_quotes'); function flipboard_pull_quotes ($ content) // reemplazar la etiqueta blockquote con la propiedad return str_replace ('blockquote>', 'aside>', $ content); </pre> <p>Vuelve a cargar la fuente de tu página de RSS, verás el nuevo <code><aside></code> etiqueta.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_4.jpg"> <h3>Imagen</h3> <p>Para todos estos elementos, seguiremos otro método sugerido por Flipboard: en lugar de colocar la semántica directamente en el Contenido de la publicación, agregaremos un nuevo subconjunto de elementos de Media RSS a la <code><item></code> elemento.</p> <p>Media RSS es una extensión RSS que mejora la publicación de archivos multimedia en canales RSS. Los archivos de imagen, video y audio y sus metadatos se pueden incluir en las fuentes RSS gracias a sus elementos especiales.</p> <p>En nuestro caso utilizaremos el principal de ellos: <code><media:content></code>.</p> <p>Además, también necesitamos la extensión GeoRSS para admitir la información geográfica, por lo que debemos agregar los espacios de nombres correctos a la fuente RSS para que sea válida..</p> <p>Añade estas líneas a nuestro <strong>Flipboard RSS Feed</strong> enchufar:</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>Y el resultado será:</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_5.jpg"> <p>Ahora queremos agregar a nuestro feed RSS todas las imágenes adjuntas a nuestras publicaciones. Debemos hacer algo como:</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 gatito adorable</media:description> <media:copyright>Carl Carlson</media:copyright> </media:content> </item></pre> <p>los <code><media:content></code> elemento soporta dos subelementos: <code><media:description></code> es el título usado para la imagen y en WordPress es el Título de la imagen, mientras que <code><media:copyright></code> Contiene la información de derechos de autor o crédito del autor de la imagen..</p> <p>Ahora, vamos a implementar esto en nuestro WordPress Feed. Escriba una publicación y adjunte algunas imágenes (tenga en cuenta que las imágenes deben tener al menos 400 px en la dimensión más pequeña):</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_6.jpg"> <p>Publique el Post, luego agregue estas líneas a nuestro <strong>Flipboard RSS Feed</strong> enchufar:</p> <pre> add_filter ('rss2_item', 'flipboard_attached_images'); función flipboard_attached_images () global $ post; $ attachments = get_posts (array ('post_type' => 'attachment', 'post_mime_type' => 'image', '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]; ?>"tipo ="<?php echo $att->post_mime_type; ?> "medium =" image "> <media:description type="plain"><![CDATA[<?php echo $att->título de la entrada; ?>]]></media:description> <media:copyright><?php echo get_the_author(); ?></media:copyright> </media:content> <?php </pre> <p>Vuelve a cargar la fuente de la página de RSS, verás un <code><media:content></code> Elemento para cada imagen adjunta..</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_7.jpg"> <p>Una breve nota sobre el <code><media:group></code> Elemento: se puede utilizar para proporcionar cultivos y tamaños alternativos de la misma imagen, por ejemplo, versiones verticales / horizontales..</p> <h3>Vídeo</h3> <p>Para los archivos de video Flipboard sugiere usar este código:</p> <pre> <media:content url="http://www.example.com/lisa-saxophone.mp4" type="video/mp4"> <media:description type="plain">Lisa toca el saxofon</media:description> <media:thumbnail url="http://www.example.com/lisa-saxophone.jpg" /> <media:copyright>Carl Carlson</media:copyright> </media:content></pre> <p>Aquí tenemos un nuevo subelemento: <code><media:thumbnail></code>: simplemente especifica una imagen de vista previa para el video. Esto puede ser un poco complicado ya que necesitamos una manera de crear una conexión directa entre el video adjunto y su imagen de vista previa y decirle a WordPress que los dos archivos están conectados. Podemos proceder de esta manera:</p> <ol> <li>Agrega una nueva publicación y adjunta uno o más videos / audio a ella <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_8.jpg"> </li> <li>En el <strong>Mediateca</strong> página, cargue la imagen de vista previa, tome nota de las dimensiones de la imagen y copie la URL del archivo de imagen <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_9.jpg"> </li> <li>En el <strong>Mediateca</strong> encuentra el video, edítalo y pega la URL de la imagen en el <strong>Descripción</strong> campo y <em>además</em> agregue el ancho y el alto de la imagen, cada uno separado por un carácter de canalización "<code>|</code>". Esto es necesario, para establecer las dimensiones correctas de la imagen.. <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_10.jpg"> </li> </ol> <p>Ahora es el momento de poner el video en nuestro feed RSS. Añade estas líneas a nuestro <strong>Flipboard RSS Feed</strong> enchufar:</p> <pre> add_filter ('rss2_item', 'flipboard_attached_videos'); función 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); $ parts = explode ('|', $ att-> post_content); ?> <media:content url="<?php echo $video_url; ?>"tipo ="<?php echo $att->post_mime_type; ?> "> <media:description type="plain"><![CDATA[<?php echo $att->título de la entrada; ?>]]></media:description> <media:copyright><?php echo get_the_author(); ?></media:copyright> <media:thumbnail url="<?php echo $parts[0]; ?>"/> </media:content> <?php </pre> <p>Y aquí está el resultado final:</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_11.jpg"> <h3>Audio</h3> <p>El código de Fliboard para archivos de audio es:</p> <pre> <media:content url="http://www.example.com/bartman.mp3" fileSize="1000" type="audio/mpeg" > <media:description type="plain">Lisa toca el saxofon</media:description> <media:thumbnail url="http://www.example.com/lisa-saxophone.jpg" /> <media:copyright>Carl Carlson</media:copyright> </media:content></pre> <p>Como puede ver, es sustancialmente idéntico al video: para adjuntar la vista previa de la imagen al archivo de audio, podemos utilizar el mismo método que seguimos para los videos..</p> <p>Entonces, agregue estas líneas en nuestro plugin:</p> <pre> add_filter ('rss2_item', 'flipboard_attached_audio'); función 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); $ parts = explode ('|', $ att-> post_content); $ headers = get_headers ($ audio_url, 1); $ filesize = $ headers ['Content-Length']; ?> <media:content url="<?php echo $audio_url; ?>"fileSize ="<?php echo $filesize; ?>"tipo ="<?php echo $att->post_mime_type; ?> "> <media:description type="plain"><![CDATA[<?php echo $att->título de la entrada; ?>]]></media:description> <media:copyright><?php echo get_the_author(); ?></media:copyright> <media:thumbnail url="<?php echo $parts[0]; ?>"/> </media:content> <?php </pre> <h3>Presentaciones de diapositivas</h3> <p>Para agregar todas las imágenes adjuntas a una publicación en un formato de presentación de diapositivas, debemos agregar una parte del código HTML al contenido de la publicación de la fuente RSS:</p> <pre> <section> <h1>Mis animales favoritos</h1> <figure> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_12.jpg"> <figcaption>Los cachorros son lindos</figcaption> </figure> <figure> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_12.jpg"> <figcaption>Los gatitos son demasiado</figcaption> </figure> <figure> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_12.jpg"> <figcaption>Y las ovejas crecen hasta convertirse en ovejas.</figcaption> </figure> </section></pre> <p>Añade estas líneas en nuestro plugin:</p> <pre> add_filter ('the_content_feed', 'flipboard_slideshow'); función flipboard_slideshow ($ content) global $ post; $ attachments = get_posts (array ('post_type' => 'attachment', 'post_mime_type' => 'image', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'exclude' => get_post_thumbnail_id ())); if ($ attachments) $ slide = '<section><h1>'. $ post-> post_title. '</h1>'; foreach ($ archivos adjuntos como $ att) $ img_attr = wp_get_att_tachment_image_src ($ att-> ID, 'full'); $ slide. = '<figure> <img src="//accentsconagua.com/img/' . $img_attr[0] . '"> <figcaption>'. $ att-> post_title. '</figcaption> </figure>'; $ slide. = '</section>'; devuelve $ contenido. $ diapositiva else return $ content; </pre> <p>Y este es el resultado:</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_12.jpg"> <h3>Información geográfica</h3> <p>Para mostrar información geográfica podemos usar un campo personalizado como lo hicimos para el <code>hgroup</code> Subtitular.</p> <p>Por lo tanto, en la página Editar publicación, agregue un <code>flipboard_geo</code> Campo personalizado y establezca el valor en un formato como este: <code>45.256 -71.92</code> (una lista completa de etiquetas compatibles está disponible en la documentación de GeoRSS).</p> <p>Añade estas líneas a nuestro <strong>Flipboard RSS Feed</strong> enchufar:</p> <pre> add_filter ('the_content_feed', 'flipboard_geo'); función flipboard_geo ($ contenido) global $ post; $ flipboard_geo = get_post_meta ($ post-> ID, 'flipboard_geo', TRUE); if ($ flipboard_geo) $ geo = '<georss:poin>'. $ flipboard_geo. '</georss:point>'; devuelve $ contenido. $ geo; else return $ content; </pre> <h3>Envía tu feed a Flipboard</h3> <p>Una vez que la fuente RSS esté lista, puede solicitar a Flipboard que la incluya en sus fuentes de noticias: debe comunicarse con el personal de Flipboard por correo electrónico, incluida la URL de su fuente RSS, Twitter, Facebook y los detalles del sitio web. El personal revisará toda la información y se lo comunicará en 5 días hábiles.</p> <hr> <h2> Paso 3 Personaliza la fuente RSS para tus Podcasts en iTunes</h2> <p>Para publicar nuestros podcasts de audio o video en iTunes de Apple, debemos formatear la fuente RSS de acuerdo con las especificaciones técnicas de iTunes a través de un nuevo complemento:</p> <p>Crear un nuevo archivo llamado <strong>itunes-feed.php</strong>, Ábrelo tu editor de texto favorito y pega esto:</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 el archivo en tu <strong>/ wp-content / plugins /</strong> directorio y activarlo en el <strong>Complementos</strong> Página de administrador.</p> <h3>Espacio de nombres de iTunes</h3> <p>Para agregar el espacio de nombres de iTunes y admitir etiquetas meta específicas de iTunes, podemos utilizar el <code>rss2_ns</code> filtrar:</p> <pre> add_filter ('rss2_ns', 'itunes_namespace'); // Agregar la función de espacio de nombres itunes_namespace () echo 'xmlns: itunes = "http://www.itunes.com/dtds/podcast-1.0.dtd"'; </pre> <h3>Etiquetas de la cabeza de iTunes</h3> <p>El siguiente paso es agregar información diversa que ayudará a iTunes a categorizar mejor su fuente en la tienda y mostrar información detallada sobre su canal de podcast.</p> <p>Podemos añadir todas estas informaciones a través de <code>rss2_head</code> filtrar:</p> <pre> add_filter ('rss2_head', 'itunes_head'); función itunes_head () ?> <itunes:subtitle>Un show sobre todo</itunes:subtitle> <itunes:author>John Doe</itunes:author> <itunes:summary>Todo sobre todo es un espectáculo sobre todo ... </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>En aras de la brevedad para este tutorial, el ejemplo es estático. Puede modificar toda la información manualmente en el código fuente del complemento. Si prefiere dinamizarlo, puede crear una página de opciones para manejar toda esta información (vea también: <strong>Manejo de opciones de plugins en WordPress 2.8 con register_setting ()</strong> por Ozh).</p> <h3>iTunes Publicar Etiquetas</h3> <p>Para cada publicación, iTunes solicita agregar algunas etiquetas adicionales:</p> <pre> <itunes:author>John Doe</itunes:author> <itunes:subtitle>Una imprimación corta sobre especias de mesa.</itunes:subtitle> <itunes:summary>Esta semana hablamos de saleros y pimenteros ... </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>7:04</itunes:duration> <itunes:keywords>sal, pimienta, coctelera, excitante</itunes:keywords></pre> <p>Podemos manejar algo de esta información de esta manera:</p> <ul> <li> <strong>autor</strong>: utilizaremos el autor del post</li> <li> <strong>subtitular</strong>: utilizaremos el título del anexo de la publicación</li> <li> <strong>resumen</strong>: utilizaremos el título del archivo adjunto</li> <li> <strong>duración</strong>: utilizaremos la descripción del archivo adjunto</li> <li> <strong>palabras clave</strong>: utilizaremos las etiquetas Post</li> </ul> <p>Escribe una nueva publicación, agrega un título, algo de contenido y algunas etiquetas. Luego, adjunte un archivo de audio a la publicación..</p> <p>Después de cargar el archivo, agregue otra información: Título, Título y use el campo Descripción para especificar la duración.</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_13.jpg"> <p>Agregue una imagen destacada a la publicación y finalmente publíquela..</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_14.jpg"> <p>Ahora, agregue estas líneas en nuestro <strong>itunes-feed.php</strong> enchufar:</p> <pre> // agregar soporte para Publicar miniaturas que usaremos para las portadas de podcast add_theme_support ('post-thumbnails'); // iTunes prefiere imágenes .jpg cuadradas que tengan al menos 400 x 400 píxeles add_image_size ('itunes-cover', 400, 400, true); función itunes_attached_audio () global $ post; $ attachments = get_posts (array ('post_type' => 'attachment', 'post_mime_type' => 'audio', // si usa videos, cambie aquí 'posts_per_page' => -1, 'post_parent' => $ post- > ID, 'exclude' => get_post_thumbnail_id ())); // usa las etiquetas de publicación para itunes: keywords $ itunes_keywords_arr = get_the_tags (); if ($ itunes_keywords_arr) foreach ($ itunes_keywords_arr como $ tag) $ itunes_keywords. = $ tag-> nombre. ','; $ itunes_keywords = substr_replace (trim ($ itunes_keywords), ", -1); // use el pulgar de la publicación para itunes: imagen $ post_thumbnail_id = get_post_thumbnail_id ($ post-> ID) ($ post-> post) itunes-cover '); if ($ attachments) foreach ($ attachments as $ att) $ audio_url = wp_get_att_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->título de la entrada; ?></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; ?>"longitud ="<?php echo $filesize; ?>"tipo ="<?php echo $att->post_mime_type; ?> "/> <guid><?php the_permalink(); ?></guid> <itunes:duration><?php echo $att->Publicar Contenido; ?></itunes:duration> <itunes:keywords><?php echo $itunes_keywords; ?></itunes:keywords> <?php </pre> <p>Finalmente, publique la publicación y vuelva a cargar la fuente de la fuente RSS..</p> <img src="//accentsconagua.com/img/images_21/extending-the-default-wordpress-rss-feed_15.jpg"> <hr> <h2>En conclusión</h2> <p>Aunque este tutorial cubre solo dos plataformas principales, gracias a WordPress Hooks es posible personalizar la fuente RSS predeterminada y hacerla adecuada para otras aplicaciones web externas. Para cada publicación, puede adjuntar información adicional mediante el uso de nuevas extensiones RSS, o puede mejorar el contenido de la publicación proporcionando un código HTML adicional para cumplir con los requisitos de todas las plataformas que desea utilizar para publicar su contenido..</p> <hr> <h2>Referencias</h2> <ul> <li>Ejemplo de Apple iTunes Feed</li> <li>GeoRSS-Documentación simple</li> <li>Publicación de contenido en Flipboard a través de fuentes RSS</li> <li> <strong>WordPress ganchos y filtros</strong> <ul> <li>API de complemento de WordPress</li> <li>Acerca de los ganchos de WordPress en <em>Agregar una columna personalizada en la pantalla de administración de publicaciones y tipos de publicaciones personalizadas</em></li> <li>La guía para principiantes de acciones y filtros de 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">Código</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">Ampliación del administrador de ProcessWire usando módulos personalizados</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">Extendiendo SimplePie para analizar fuentes RSS únicas</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="/">es.accentsconagua.com</a><div class="h-block-a"></div></div> <div class="footer-text"> Información interesante y consejos útiles sobre programación. Desarrollo de sitios web, diseño web y desarrollo web. Tutoriales de Photoshop. Creación de juegos de ordenador y aplicaciones móviles. Conviértete en un programador profesional desde cero. </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="Buscar..."> <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>