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

Share to social media
Imagen destacada, en miniatura, con el título "Cómo añadir un blogroll a un tema clásico, mediante un script PHP". Se ve a una mujer y un hombre, en primer plano, delante de un ordenador de sobremesa.

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

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

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.

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.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

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