Soporte » Diseño – Temas y plantillas » Mostrar artículos en paginación de la misma categoría

  • Resuelto bertor

    (@bertor)


    Hola, muy buenas!

    Estoy googleando y no encuentro nada muy claro. Lo que busco es que la paginación de mi sitio (que funciona perfectamente), cuando se está dentro de una categoría, sólo muestre los artículos paginando de esa categoría.

    Es decir, si tengo tres categorías: todas, articulos1 y articulos2. WordPress, ordena la paginación según el último artículo añadido (junta todo). Lo que yo quiero es que dentro de articulos1, unicamente la paginación funcionen con los artículos dentro de esa categoría.

    Gracias!,

    • Este debate fue modificado hace 4 años, 10 meses por bertor.
Viendo 12 respuestas - de la 1 a la 12 (de un total de 12)
  • Moderador Fernando Tellado

    (@fernandot)

    Es que es así como funciona WordPress, como tú pides, eso lo hará un plugin o el tema. Prueba a activar un tema por defecto de WordPress, como Twenty Nineteen.

    Vamos, que si tú accedes a una url del tipo:

    misitio.com/category/articulos1/

    Y pulsas en la paginación para ir a la página 2 la url será esta:

    misitio.com/category/articulos1/page/2/

    Y te muestra solo artículos de esa categoría, otros, los más antiguos que los de la primera página.

    WordPress funciona siempre así, sin salirse de la categoría.

    Iniciador del debate bertor

    (@bertor)

    Hola @fernandot, tienes que disculpar pero no entiendo exactamente lo que quieres decir. Tengo que usar un plugin o theme especial, o es el comportamiento por defecto? me explico

    Si dentro de categoría A tengo los artículos: A1, A2 y A3
    Y en la categoría B, tengo los artículos: B1, B2 y B3

    La paginación, dependiendo de cuál sea el último, los mostrará seguidos. No me refiero a la categoría en si, que ahí si que salen los que tienen que salir. Lo acabo de probar con el Twenty Sixteen

    • Esta respuesta fue modificada hace 4 años, 10 meses por bertor.
    Moderador Fernando Tellado

    (@fernandot)

    Pues igual soy yo el que no te he entendido a ti. ¿Podrías poner un ejemplo? porque no has puesto ni tu web para poder ver lo que cuentas

    Moderador LGrusin

    (@lgrusin)

    ¿Por casualidad te refieres a la navegación hacía siguiente artículo o anterior?

    Eso no es paginación.

    Iniciador del debate bertor

    (@bertor)

    Hola @fernandot, efectivamente es lo que apunta @lgrusin, me refiero a ese comportamiento. Pensaba que eso también era la paginación…

    Dentro de la categoría X, si nos ponemos a pasar de artículos (siguiente/anterior), nos saldrán también los de categoría Y,Z… me parece curioso que este comportamiento sea así por defecto en WordPress.

    Moderador Fernando Tellado

    (@fernandot)

    Ah, es que eso es navegación por fecha nada más, no tiene en cuenta ningún otro argumento.

    Entonces lo que tienes que hacer es modificar las funciones de navegación get_the_post_navigation, o previous_post_link y next_post_link con el argumento in_same_term, como se explica en la referencia que te he enlazado de cada caso.

    Crea un tema hijo, copia el(los) archivo(s) que contenga(n) en tu tema las funciones de navegación (seguramente single.php, pero puede ser otro depende del tema) y añade el argumento a la función que use de las de arriba.

    Iniciador del debate bertor

    (@bertor)

    Hola @fernandot, disculpa la demora, ya han pasado unos meses. He visto en tu blog un artículo hablando sobre este tema pero no lo he logrado solucionar. El autor del theme me dice que las funciones están en el content.php

    He llegado hasta aquí (faltaría poner la función con el get_next_post):

    	// Single pagination
    			$next_post = get_next_post();
    			$prev_post = get_previous_post();
    <?php if ( $prev_post ) : ?>
    
    						<a class="previous-post" href="<?php echo esc_url( get_permalink( $prev_post->ID ) ); ?>">
    							<span class="arrow">
    								<img aria-hidden="true" src="<?php echo get_template_directory_uri(); ?>/assets/images/icons/arrow-left.svg" />
    								<span class="screen-reader-text"><?php _e( 'Previous post:', 'koji' ); ?> </span>
    							</span>
    							<span class="title"><?php echo wp_kses_post( get_the_title( $prev_post->ID ) ); ?></span>
    						</a>
    
    					<?php endif; ?>

    Y ya se me escapa de mis conocimientos… poder aplicar los argumentos, no entiendo como funcionan aquí.

    Moderador LGrusin

    (@lgrusin)

    Yo creo que eso que pides ya lo tienes. Entra en una categoría y dale a Siguiente página o Página anterior, te saldrán únicamente los artículos de esa categoría.

    Iniciador del debate bertor

    (@bertor)

    Hola @lgrusin, si entramos en este enlace donde hay dos artículos, en cualquiera de ellos, podemos acceder a otras categorías.

    Moderador LGrusin

    (@lgrusin)

    Ya, pero eso es diferente a lo que preguntabas. Eso es el widget que has añadido a la barra lateral.

    1 – Para que funcione la paginación, en el menú Apariencia – Paginación, debes marcar la última opción ‘Enlaces a la página anterior y siguiente’
    2 – Las categorías se muestran en la barra lateral, ya sea mediante el widget de categorías o si las has añadido al menú.

    Si no quieres ver las categorías en la barra lateral cuando estés navegando por las categorías habría que modificar algunas cosas del tema creando un tema hijo.

    Iniciador del debate bertor

    (@bertor)

    No, no me refiero al menú. Me refiero a que dentro de esta categoría, solo tenemos dos artículos, pero si entro dentro de uno, puedo seguir navegando por artículos de otras categorías.

    Es decir, dentro de de las 17 categorías que están en el menú dentro de «Tódalas parroquias», solo pueda navegar por cada categoría, ya que para eso he creado una superior que las agrupa todas y así no mezclar la navegación cuando entras en una.

    Moderador LGrusin

    (@lgrusin)

    Entiendo, pues tal como dice @fernandot en el código que has puesto del archivo content.php sustituye:

    // Single pagination
    $next_post = get_next_post();
    $prev_post = get_previous_post();

    por

    // Single pagination
    $next_post = get_next_post('true');
    $prev_post = get_previous_post('true');

    Ten en cuenta que tienes artículos con varias categorías, al algún momento se puede salir de la categoría inicial si solo navegas desde los artículos.

    Deberías hacer un tema hijo porque perderás estos cambios cuando actualices el tema.

Viendo 12 respuestas - de la 1 a la 12 (de un total de 12)
  • El debate ‘Mostrar artículos en paginación de la misma categoría’ está cerrado a nuevas respuestas.