You don’t speak Spanish? Explore a selection of Blogpocket posts in English

Cómo añadir un blogroll a un tema clásico de WordPress, mediante un script PHP

You can also read this post In English

Sigue este blog en Mastodon

Este blog está federado, por lo que si lo sigues desde tu servidor de Mastodon, verás todo lo que se publica aquí en tu timeline de inicio. Escribe en la caja de búsqueda de tu app de Mastodon la URL https://www.blogpocket.com/author/antonio

BLOGROLL-WORDPRESS-PHP-THUMBNAIL Cómo añadir un blogroll a un tema clásico de WordPress, mediante un script PHP

Si necesitas un blogroll para añadirlo a un tema clásico de WordPress, en este post te ayudaré escribiendo el código PHP correspondiente. Veremos cómo puedes insertar dicho código en cualquier página de tu sitio web, a partir de un archivo .txt que contiene el título, la url del sitio y la url del feed RSS.

Esta pregunta surgió en Mastodon y he querido mostrar el código base. Por supuesto, se puede adornar tanto como se desee. Hay una clase «blogroll» para aplicar CSS y supondremos que el tema utilizado no es un tema de bloques (en un post posterior, veremos cómo puedes hacerlo en un tema de bloques con la función de edición del sitio).

Plugin para insertar el código PHP

Utilizaremos el plugin Insert PHP Code Snippet que servirá para escribir el código y generar un shortcode.

Una vez instalado y activo, verás un nuevo apartado «XYZ PHP Code» en la columna lateral izquierda del panel de control de WordPress.

En la sección «PHPCode Snippets» verás el botón «Add new PHP Code Snippet» con el que podrás escribir y guardar el nuevo snippet. De inmediato, se asociará un shortcode que verás en la lista de snippets y que podrás copiar al portapapeles con el fin de utilizarlo.

Habrá dos maneras básicamente de utilizar dicho snippet:

  • Seleccionándolo dentro de un desplegable que verás cuando arrastres el widget correspondiente a un área de widgets determinado. Ese widget aparece en la lista de widgets cuando instales el plugin.
  • Pegando el shortcode dentro del bloque «Shortcode», en cualquier página de tu WordPress.

Archivo .txt para configurar el blogroll

prueba-blogroll-1024x797 Cómo añadir un blogroll a un tema clásico de WordPress, mediante un script PHP

Para configurar el blogroll, utilizaremos un archivo de texto .txt que guardaremos dentro de la carpeta wp-content.

Ese archivo contendrá el título, la dirección URL del sitio y la dirección URL del feed RSS de cada entrada. Por ejemplo:

El País,https://www.elpais.com,https://feeds.elpais.com/mrss-s/pages/ep/site/elpais.com/portada
El Mundo,https://www.elmundo..es,https://e00-elmundo.uecdn.es/elmundo/rss/espana.xml
ABC,https://www.abc.es,https://www.abc.es/rss/feeds/abc_EspanaEspana.xml

Código PHP para mostrar el blogroll

Para insertar un blogroll en una página de WordPress a partir de un archivo de texto que contiene el título, la dirección URL del sitio y la dirección URL del feed RSS de cada entrada, puedes utilizar el siguiente código PHP:

<?php

// Abrimos el archivo de texto en modo lectura
$file = fopen('ruta/al/archivo.txt', 'r');

// Si el archivo se ha abierto correctamente, continuamos
if ($file) {
    // Creamos una lista HTML para mostrar el blogroll
    echo '<ul class="blogroll">';
    
    // Leemos cada línea del archivo
    while (($line = fgets($file)) !== false) {
        // Separamos la línea en tres partes: el título, la URL del sitio y la URL del feed RSS
        $parts = explode(',', $line);
        $title = trim($parts[0]);
        $site_url = trim($parts[1]);
        $rss_url = trim($parts[2]);
        
        // Añadimos una entrada al blogroll
        echo '<li>';
        echo '<a href="' . esc_url($site_url) . '">' . esc_html($title) . '</a>';
        echo ' | <a href="' . esc_url($rss_url) . '" class="rss-link">RSS</a>';
        echo '</li>';
    }
    
    // Cerramos la lista HTML
    echo '</ul>';
    
    // Cerramos el archivo de texto
    fclose($file);
} else {
    // Si hay un problema al abrir el archivo, mostramos un mensaje de error
    echo 'Error al leer el archivo de texto';
}

?>

Si usamos la app Local para probar este código, y suponemos que lo cargamos en wp-content, la ruta al archivo blogroll.txt será:

/Users/antoniocambronerosanchez/Local Sites/prueba-gutenberg/app/public/wp-content/

Deberás modificar la ruta al archivo, en tu caso.

Este código lee el archivo de texto línea a línea y va añadiendo cada entrada del blogroll a una lista HTML. También se utilizan las funciones esc_url() y esc_html() para sanear la dirección URL del sitio y el título del enlace, respectivamente, antes de insertarlos en la página. Además, se muestra un enlace con la clase «rss-link» que lleva a la dirección URL del feed RSS de cada sitio.

Cómo añadirlo a cualquier página de tu WordPress

Simplemente, edita la página e inserta el bloque «Shortcode» donde quieras o necesites mostrar el blogroll.

El Shortcode puedes obtenerlo yendo al apartado «XYZ PHP Code > PHPCode Snippets» que verás en la columna lateral de opciones del administrador de WordPress.

Cómo añadirlo al Sidebar de tu blog

widget-insert-php-1024x382 Cómo añadir un blogroll a un tema clásico de WordPress, mediante un script PHP

Si tu tema clásico, posee un área de widgets -preparada por el desarrollador del tema-, simplemente arrastra el widget «Insert PHP Snippet» al área en el que desees mostrar el blogroll. Este widget se añade a la lista de widgets disponibles cuando se activa el plugin Insert PHP Code Snippet.

Una vez ubicado el widget (por ejemplo en el widget Footer, como se observa en la imagen anterior), elige el shortcode en el desplegable y guarda los cambios.

También, puedes crear un área de widgets siguiendo las instrucciones de nuestra guía Cómo crear un área de widgets «after entry» en un tema clásico de WordPress.

Conclusiones

Hemos visto el código PHP para insertar en una página de WordPress, con el objetivo de mostrar un blogroll a partir de un archivo .txt que contiene el título, la url del sitio y la url del feed RSS.

Es un código base que puede alterarse a tu gusto y puedes ubicarlo donde quieras:

  • Directamente en un archivo HTML del tema clásico que uses.
  • En cualquier página de tu WordPress, mediante el shortcode correspondiente al plugin Insert PHP Code Snippet.
  • En un área de widgets existente, dentro del tema.
Responder en Mastodon (requiere usuario en esa plataforma)

Puedes usar tu cuenta de Mastodon para responder a este post de

Copia y pega esta URL (https://www.blogpocket.com/?p=73664) en el campo de búsqueda de la interfaz web de tu servidor Mastodon.

Comparte en Mastodon:

mastodon Cómo añadir un blogroll a un tema clásico de WordPress, mediante un script PHP

Y aún hay más…

Cómo se hace un sitio web

Una revisión a vista de pájaro de todo lo necesario para crear un sitio web de WordPress.

Recursos

La lista de recursos recomendada en Blogpocket.

Mi lista de plugins

La lista de plugins de WordPress recomendada en Blogpocket

UN-BLOG-DE-21-MAS-1-COVER-3D-1024x944 Cómo añadir un blogroll a un tema clásico de WordPress, mediante un script PHP

Suscríbete a la newsletter

En la newsletter «WP al día» recopilamos las ideas, trucos y noticias de actualidad acerca de WordPress, Gutenberg y la Edición completa del sitio. Recíbela todos los lunes a primera hora.

Suscríbete ahora y descarga, entre otros, nuestro último ebook «Un blog de 21 años (la historia jamás contada)!.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Antonio Cambronero.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento: No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a GreenGeeks que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ir al contenido