Ticker News para WordPress sin plugins

Te explico paso a paso, con un ejemplo y todo el código, cómo crear un ticker de noticias para WordPress sin plugins y totalmente personalizable.

  • Tiempo de implementación:15/20 min
  • Nivel de dificultad: Medio

Un ticker news es una barra superior, donde se muestran las últimas entradas de un feed, que puede ser el de tu sitio web o de otro. A nivel de SEO sirve para dar relevancia a las últimas URLs publicadas, lo cual es interesante para sitios que desean salir en Google News o Discover.

Paso 1: Crear un archivo JavaScript para el Ticker News

Crea un archivo llamado ticker-news.js en la carpeta js de tu tema de WordPress.

Añade el siguiente código:

document.addEventListener('DOMContentLoaded', function() {
    fetch('https://lawebdelaquequieresobtenerelfeed.com/feed/')
    .then(response => response.text())
    .then(str => new window.DOMParser().parseFromString(str, "text/xml"))
    .then(data => {
        const items = data.querySelectorAll('item');
        let newsItems = [];

        items.forEach((item, index) => {
            if(index < 7) {  // Asegúrate de que se procesen al menos 7 noticias
                let title = item.querySelector('title').textContent;
                let link = item.querySelector('link').textContent;
                newsItems.push(`<a href="${link}" target="_blank">${title}</a>`);
            }
        });

        const ticker = document.querySelector('#ticker-news');
        ticker.innerHTML = newsItems.join(' | ');
    });
});

Sustituye esto: https://lawebdelaquequieresobtenerelfeed.com/feed/ por la URL correcta.

Paso 2: Añadir el archivo JavaScript al tema de WordPress

Añade el siguiente código al archivo functions.php de tu tema:

function enqueue_ticker_script() {
    wp_enqueue_script('ticker-news', get_stylesheet_directory_uri() . '/js/ticker-news.js', array(), '1.0.0', true);
}
add_action('wp_enqueue_scripts', 'enqueue_ticker_script');

Paso 3: Crear el CSS para el Ticker News

Añade el siguiente código al archivo style.css de tu tema:

#ticker-news {
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #000;
    color: #fff;
    padding: 5px 0;
    z-index: 9999;
    white-space: nowrap;
    overflow: hidden;
    /*text-overflow: ellipsis;*/
	width: 300%; /* Aumenta el ancho para dar más espacio al contenido */
}

@keyframes scrolling {
    0% {
        transform: translateX(10%);
    }
    100% {
        transform: translateX(-100%);
    }
}

#ticker-news {
    animation: scrolling 60s linear infinite; /* Aumenta el tiempo para que vaya más lento */
}

#ticker-news:hover {
    animation-play-state: paused; /* Detiene la animación al pasar el ratón por encima */
}

#ticker-news a {
    color: #fff;
    text-decoration: none;
    padding: 0 10px;
}

#ticker-news a:hover {
    text-decoration: underline;
}

#top-container {
    background-color: #000;
    width: 100%;
    position: relative; 
}

@media (max-width: 768px) { 
    #ticker-news {
        font-size: 14px;
    }

Paso 4: Añadir el Ticker News al tema

Añade el siguiente código al archivo header.php de tu tema, justo después de la etiqueta <body>:

<div id="top-container">
    <div id="ticker-news"></div>
</div>

Si usas algún sistema de caché, te recomiendo desinstalarlo durante la creación del ticker. Una vez habilitado comprueba que sigue funcionando correctamente. A veces estos plugins optimizan el JS y CSS. Si la optimización produjera erroes excluye el fichero JS de la optimización, y eventualmente las clases del ticker. En mi caso no he tenido ningún problema con LiteSpeed Cache.

Daniel Pajuelo
Daniel Pajuelo es ingeniero informático y SEO Senior, actualmente trabajando en Guruwalk. En su blog personal escribe sobre Inteligencia Artificial, SEO, Vibe Coding, Blockchain... Ver más

Continua leyendo

Leer más sobre: Wordpress