Cómo excluir la última publicación del bucle de publicaciones de WordPress

¿Quieres excluir la última entrada del bucle de entradas de WordPress?

Esto te permite elegir si quieres que la última entrada de tu blog se muestre o no en tu página de inicio, o en otras páginas en las que aparezcan las entradas de tu blog

En este artículo, te mostraremos cómo excluir la última entrada del bucle de entradas de WordPress.

Cómo excluir la última publicación del bucle de publicaciones de WordPress

¿Por qué excluir la última publicación del bucle de publicaciones de WordPress?

Excluir la última entrada mientras se muestran otros artículos puede ser útil cuando estás editando tu tema y quieres tener más control sobre cómo se muestra la primera entrada

Por ejemplo, tu primera entrada puede tener un formato diferente, o no ser relevante para aparecer en tu blog de WordPress por defecto

Dicho esto, vamos a mostrarte cómo excluir la última entrada del bucle de entradas de WordPress utilizando dos métodos diferentes.

Método 1. Excluir la última publicación del bucle de publicaciones de WordPress añadiendo una nueva función de WordPress

La forma más fácil de excluir la última publicación del bucle de publicaciones es añadiendo código a tus archivos de WordPress. Si no lo has hecho antes, consulta nuestra guía sobre cómo copiar y pegar código en WordPress.

Puedes añadir el siguiente fragmento de código a tu archivo functions.php, en un plugin específico del sitio, o utilizando un plugin de fragmentos de código


function wpsites_exclude_latest_post( $query ) {
	if ( $query->is_home() && $query->is_main_query() ) {
		$query->set( 'offset', '1' );
	}
}

add_action( 'pre_get_posts', 'wpsites_exclude_latest_post', 1 );

Este código excluirá la visualización de la última publicación en el bucle de tu página de inicio. El offset se establece en uno, por lo que sólo se ocultará la primera publicación


add_action('pre_get_posts', 'myprefix_query_offset', 1 );
function myprefix_query_offset(&$query) {

    //Before anything else, make sure this is the right query...
    if ( ! $query->is_home() ) {
        return;
    }

    //First, define your desired offset...
    $offset = 1;
    
    //Next, determine how many posts per page you want (we'll use WordPress's settings)
    $ppp = get_option('posts_per_page');

    //Next, detect and handle pagination...
    if ( $query->is_paged ) {

        //Manually determine page query offset (offset + current page (minus one) x posts per page)
        $page_offset = $offset + ( ($query->query_vars['paged']-1) * $ppp );

        //Apply adjust page offset
        $query->set('offset', $page_offset );

    }
    else {

        //This is the first page. Just use the offset...
        $query->set('offset',$offset);

    }
}

Este fragmento de código establecerá el offset de nuevo a 1. Pero también añade el desplazamiento e introduce la paginación. Aquí le dice a nuestro archivo del blog que se salte la primera entrada


add_filter('found_posts', 'myprefix_adjust_offset_pagination', 1, 2 );
function myprefix_adjust_offset_pagination($found_posts, $query) {

    //Define our offset again...
    $offset = 1;

    //Ensure we're modifying the right query object...
    if ( $query->is_home() ) {
        //Reduce WordPress's found_posts count by the offset... 
        return $found_posts - $offset;
    }
    return $found_posts;
}

El último fragmento de código define tu offset una vez más. Además, asegura que la paginación funcione correctamente

Una vez que hayas añadido los fragmentos de código anteriores, la última publicación se eliminará del bucle de publicaciones de WordPress

Método 2. Excluir la última publicación del bucle de publicaciones de WordPress cambiando los archivos del tema de WordPress

Otra forma de excluir la última publicación del bucle de publicaciones de WordPress es añadir una sola línea de código a los archivos de tu tema de WordPress

Esto consigue un resultado similar al código anterior, pero tendrás que añadirlo directamente al bucle de WordPress donde quieras que se muestre

Así que, si quieres cambiar el bucle de la entrada en todo el sitio, entonces lo añadirías a tu index.php archivo.

Nota: Añadir este código a tus archivos de WordPress puede causar problemas de paginación en tu sitio web.

Primero, tendrás que copiar y pegar el siguiente código y añadirlo a tu bucle de WordPress.


query_posts('posts_per_page=6&offset=1');

Este código utiliza la función query y le dice al bucle que sólo muestre las 5 publicaciones que siguen a la más reciente. El offset impide que se muestre la entrada más reciente.

Irá directamente encima de tu bucle de publicación de WordPress, por lo que tendrá un aspecto similar al del fragmento de código siguiente.

 
query_posts('posts_per_page=6&offset=1');
if ( have_posts() ) :
while ( have_posts() ) : the_post(); 
endwhile;

Una vez que hayas personalizado y guardado el archivo, tienes que subirlo al directorio de tu tema en tu cuenta de alojamiento de WordPress.

Para ello, puedes utilizar un cliente FTP, o la opción del gestor de archivos en el panel de control de tu alojamiento WordPress.

Si no has utilizado el FTP antes, quizá quieras consultar nuestra guía sobre cómo utilizar el FTP para subir archivos a WordPress.

Después de añadir el código, la última entrada de WordPress será excluida del bucle de entradas de WordPress y no aparecerá en la página de tu blog.

Esperamos que este artículo te haya ayudado a saber cómo excluir la última entrada del bucle de WordPress. Quizás también quieras ver nuestra guía sobre cómo elegir el mejor registrador de dominios y nuestra selección de expertos sobre las mejores alternativas a GoDaddy

Si te ha gustado este artículo, suscríbete a nuestro Canal de YouTube para los videotutoriales de WordPress. También puedes encontrarnos en Twitter y Facebook.

Si quieres conocer otros artículos parecidos a Cómo excluir la última publicación del bucle de publicaciones de WordPress puedes visitar la categoría Themes.

¡Más Contenido!

Deja un comentario

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

Go up