...
✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Відображати публікації з певної категорії на сторінці WordPress

30

Ви хочете відображати публікації з певної категорії на власному шаблоні сторінки в WordPress? Зробивши це, ви можете скористатися власним дизайном шаблону та відобразити перелік публікацій на сторінці WordPress. У цій статті ми вивчаємо, як відображати публікації з певної категорії на власному шаблоні сторінки.

За замовчуванням у WordPress ви можете класифікувати свою публікацію. Ця функція корисна, щоб дізнатись усі публікації, що належать до певної категорії. У WordPress, коли користувач натискає одну з категорій, він перенаправляє на сторінку списку публікацій для цієї конкретної категорії. WordPress використовує наступні файли шаблонів для публікації списку категорій.

  • category-slug.php
  • category-ID.php
  • категорія.php
  • archive.php
  • index.php

Для відображення публікацій відповідної категорії WordPress шукає файли шаблонів у вказаному вище порядку. Який би файл шаблону не був знайдений першим, код із цього файлу буде використовуватися для публікацій списків категорії.

Вся справа в шаблонах WordPress за замовчуванням. Але що, якщо хтось хоче використовувати власний шаблон сторінки для списків публікацій певної категорії?

З огляду на це, давайте пройдемо покроковий посібник для досягнення цієї мети.

Створити шаблон сторінки в WordPress

Наша мета – відображати публікації за категоріями на сторінці. Очевидно, для цього потрібно написати код. Створіть файл template-category.phpу каталозі активної теми та додайте коментар нижче у верхній частині файлу.

шаблон-категорія.php

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

Далі перейдіть на інформаційну панель WordPress, створіть свою сторінку, де ви хочете відображати повідомлення. Призначте наведений вище шаблон цій новоствореній сторінці.

Відображати публікації з певної категорії на сторінці WordPress

Відображати публікації з певної категорії на сторінці WordPress

Наразі ви створили і призначили шаблон на сторінці WordPress. Наступне, що вам потрібно зробити, це написати код, який отримує публікації, прикріплені до категорії.

Я буду використовувати WP_Queryклас для отримання повідомлень. Наприклад, я припускаю, що у вас є категорія під назвою "WordPress" і дописи, приєднані до цієї категорії, які ви хочете відобразити.

Напишіть код нижче, щоб отримати список публікацій у категорії «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;

У наведеному вище коді я передав 'category_name' => 'wordpress'. Тут ‘wordpress’ – це куля категорії.

Відображати публікації з певної категорії на сторінці WordPress

Користувач також може передавати ідентифікатор категорії замість name_name. У такому випадку вам слід використовувати ключ як "cat" замість "category_name" та передати ідентифікатор категорії.

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

posts_per_page– кількість повідомлень, які потрібно отримати з бази даних. Я використав have_posts()метод, який перевіряє, чи доступна наступна публікація для циклу WordPress. Якщо він доступний, він перебирає кожну публікацію та відображає її.

Отримуйте повідомлення за спеціальною систематикою

Можливо, ви працюєте з користувацьким типом публікації і хочете відобразити повідомлення з користувацької таксономії. У такому випадку потрібно змінити масив аргументів наступним чином:

$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 );

Обов’язково замініть заповнювачі фактичними значеннями.

Пагінація

Код, який я написав, отримує лише обмежені публікації з категорії. Незважаючи на те, що ви можете отримати будь-яку кількість дописів, передавши номер на ‘posts_per_page’, зазвичай ми відображаємо набір постів на сторінці, а потім використовуємо пагінацію, щоб отримати наступний і попередній набір постів.

Для інтеграції пагінації встановіть та активуйте плагін WP-PageNavi.

Цей плагін забезпечує метод, wp_pagenavi()який генерує посилання на пагінацію, які можна використовувати на сторінці списку публікацій.

Відображати публікації з певної категорії на сторінці WordPress

Щоб додати посилання на пагінацію на вашу сторінку WordPress, вам потрібно змінити свій код. Спочатку потрібно передати pagedпараметр, а потім використовувати функцію wp_pagenavi().

Ви отримаєте значення для підкачки наступним чином:

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

Отже, ваш остаточний код такий, як показано нижче.

шаблон-категорія.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(); ?>

Тепер ви можете змінити структуру HTML, використовувати класи, додати стилістику та створити гарно створену сторінку для списку ваших публікацій.

Сподіваюсь, ви розумієте, як відображати дописи з певної категорії на сторінці WordPress. Будь ласка, поділіться своїми думками в розділі коментарів нижче.

Пов’язані статті

Джерело запису: artisansweb.net

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі