...
✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Mostrar publicaciones de una categoría específica en una página de WordPress

50

¿Quieres mostrar publicaciones de una categoría específica en una plantilla de página personalizada en WordPress? Al hacerlo, puede usar su propio diseño de plantilla y mostrar la lista de publicaciones en una página de WordPress. En este artículo, estudiamos cómo mostrar publicaciones de una categoría específica en una plantilla de página personalizada.

De forma predeterminada en WordPress, puede categorizar su publicación. Esta función es útil para conocer todas las publicaciones que pertenecen a la categoría específica. En WordPress, cuando un usuario hace clic en una de las categorías, lo redireccionará a una página de listado de publicaciones para esa categoría específica. WordPress utiliza los siguientes archivos de plantilla para la lista de publicaciones de una categoría.

  • category-slug.php
  • ID de categoría.php
  • category.php
  • archive.php
  • index.php

Para mostrar publicaciones de la categoría relacionada, WordPress busca archivos de plantilla en el orden anterior. Cualquiera que sea el archivo de plantilla que se encuentre primero, el código de ese archivo se utilizará para las publicaciones que enumeran una categoría.

Se trata de las plantillas predeterminadas de WordPress. Pero, ¿qué pasa si alguien quiere usar una plantilla de página personalizada para los listados de publicaciones de una categoría específica?

Dicho esto, veamos una guía paso a paso para lograr este objetivo.

Crear plantilla de página en WordPress

Nuestro objetivo es mostrar publicaciones por categoría en una página. Obviamente, necesitas escribir un código para ello. Cree un archivo template-category.phpen el directorio de su tema activo y agregue el siguiente comentario en la parte superior de un archivo.

template-category.php

<?php
/**
 * Template Name: Category Custom Page
 */
 
?>

A continuación, vaya a su panel de WordPress, cree su página donde desea mostrar las publicaciones. Asigne la plantilla anterior a esta página recién creada.

Mostrar publicaciones de una categoría específica en una página de WordPress

Mostrar publicaciones de una categoría específica en una página de WordPress

Hasta ahora ha creado y asignado su plantilla a la página de WordPress. Lo siguiente que debe hacer es escribir un código que obtenga publicaciones adjuntas a una categoría.

Voy a utilizar WP_Queryla clase a buscar a los postes. Por ejemplo, supongo que tiene una categoría llamada ‘WordPress’ y publicaciones adjuntas a esta categoría que desea mostrar.

Escriba el código a continuación para obtener una lista de publicaciones en la categoría ‘WordPress’.

$args = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'category_name' => 'wordpress',
    'posts_per_page' => 5,
);
$arr_posts = new WP_Query( $args );
 
if ($arr_posts->have_posts() ):  
    while ($arr_posts->have_posts() ):         $arr_posts->the_post();
        ?>
        <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
            <?php
            if (has_post_thumbnail() ):                 the_post_thumbnail();
            endif;
            ?>
            <header class="entry-header">
                <h1 class="entry-title"><?php the_title(); ?></h1>
            </header>
            <div class="entry-content">
                <?php the_excerpt(); ?>
                <a href="<?php the_permalink(); ?>">Read More</a>
            </div>
        </article>
        <?php
    endwhile;
endif;

En el código anterior he pasado 'category_name' => 'wordpress'. Aquí ‘wordpress’ es el slug de una categoría.

Mostrar publicaciones de una categoría específica en una página de WordPress

El usuario también puede pasar el ID de categoría en lugar de category_name. En ese caso, debe usar la clave como ‘gato’ en lugar de ‘nombre_categoría’ y pasar la identificación de una categoría.

$args = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'cat' => '4', //you can pass comma-separated ids here
    'posts_per_page' => 5,
);

posts_per_pagees el número de publicaciones que se van a recuperar de la base de datos. He usado el have_posts()método que verifica si la próxima publicación está disponible para el bucle de WordPress. Si está disponible, recorre cada publicación y la muestra.

Obtener publicaciones con taxonomía personalizada

Es posible que esté trabajando con un tipo de publicación personalizada y desee mostrar las publicaciones de una taxonomía personalizada. En ese caso, debe cambiar la matriz de argumentos de la siguiente manera:

$args = array(
    'post_type' => 'CUSTOM_POST_TYPE_NAME',
    'post_status' => 'publish',
    'posts_per_page' => 5,
    'tax_query' => array(
        array(
            'taxonomy' => 'TAXONOMY_NAME',
            'field'    => 'slug',
            'terms'    => array( 'TERM_SLUG' ),
            'operator' => 'IN'
        ),
    ),
);
 
$arr_posts = new WP_Query( $args );

Asegúrese de reemplazar los marcadores de posición con los valores reales.

Paginación

El código que he escrito solo obtiene publicaciones limitadas de la categoría. Aunque puede obtener cualquier número de publicaciones pasando un número a ‘posts_per_page’, normalmente mostramos un conjunto de publicaciones por página y luego usamos la paginación para obtener el conjunto de publicaciones siguiente y anterior.

Para integrar la paginación, instale y active el complemento WP-PageNavi.

Este complemento proporciona un método wp_pagenavi()que genera enlaces de paginación que se pueden usar en la página de listado de publicaciones.

Mostrar publicaciones de una categoría específica en una página de WordPress

Para agregar enlaces de paginación en su página de WordPress, debe modificar su código. Primero, debe pasar el pagedparámetro y luego usar la función wp_pagenavi().

Obtendrá el valor de paginado de la siguiente manera:

$paged = (get_query_var( 'paged' ))? get_query_var( 'paged' ): 1;

Entonces, su código final es el siguiente.

template-category.php

<?php
/**
 * Template Name: Category Custom Page
 */
 
get_header(); ?>
 
<div id="primary" class="content-area">
    <main id="main" class="site-main" role="main">
 
    <?php
    $paged = (get_query_var( 'paged' ))? get_query_var( 'paged' ): 1;
    $args = array(
        'post_type' => 'post',
        'post_status' => 'publish',
        'category_name' => 'wordpress',
        'posts_per_page' => 5,
        'paged' => $paged,
    );
    $arr_posts = new WP_Query( $args );
 
    if ($arr_posts->have_posts() ):  
        while ($arr_posts->have_posts() ):             $arr_posts->the_post();
            ?>
            <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                <?php
                if (has_post_thumbnail() ):                     the_post_thumbnail();
                endif;
                ?>
                <header class="entry-header">
                    <h1 class="entry-title"><?php the_title(); ?></h1>
                </header>
                <div class="entry-content">
                    <?php the_excerpt(); ?>
                    <a href="<?php the_permalink(); ?>">Read More</a>
                </div>
            </article>
            <?php
        endwhile;
        wp_pagenavi(
            array(
                'query' => $arr_posts,
            )
        );
    endif;
    ?>
 
    </main><!-- .site-main -->
</div><!-- .content-area -->
 
<?php get_footer(); ?>

Ahora puede cambiar la estructura HTML, usar las clases, agregar estilo y crear una página bien diseñada para su lista de publicaciones.

Espero que comprenda cómo mostrar publicaciones de la categoría específica en una página de WordPress. Comparta sus pensamientos en la sección de comentarios a continuación.

Artículos relacionados

Fuente de grabación: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More