Inspire30 23.01.2023 09:42

Как создать страницу с виджетами последних записей для каждой категории на WordPress?

Добрый день! Нужна помощь с созданием страницы, на которой будут виджеты с последними записями для каждой категории на WordPress.

У меня есть блог, в котором имеется несколько категорий записей. Я хочу создать страницу, на которой будут выводиться виджеты с последними записями для каждой категории. То есть, в каждом виджете должны быть только записи из определенной категории.

Я уже пытался использовать стандартные виджеты "Последние записи" и "Категории", но они выводят все последние записи вместе, без разделения по категориям.

Мне нужно, чтобы на странице каждый виджет отображал только последние записи из определенной категории и их заголовки были ссылками на соответствующие записи. Можете подсказать, как реализовать такую страницу?

// Пример кода, который я пытался использовать

<?php 
    $categories = get_categories();
    
    foreach ( $categories as $category ) {
        $args = array(
            'post_type'      => 'post',
            'posts_per_page' => 5,
            'category'       => $category->term_id
        );
        
        $query = new WP_Query( $args );
        
        if ( $query->have_posts() ) { 
            echo '<h3>' . $category->name . '</h3>';
            
            while ( $query->have_posts() ) {
                $query->the_post();
                echo '<p><a href="' . get_permalink() . '">' . get_the_title() . '</a></p>';
            }
        }
        
        wp_reset_postdata();
    }
?>

Заранее спасибо за помощь!

Ответы:

arodionov42 23.01.2023 10:05
Вам нужно проверить, правильно ли вы указали параметр 'category' при использовании WP_Query. Также убедитесь, что вы правильно обрабатываете и выводите результаты.
viktoriya25GA 23.01.2023 10:10
- попробуйте добавить атрибут "category_name" к аргументам запроса WP_Query и передавайте значение в виде имени категории вместо ID.
ElenaBogd29 23.01.2023 10:31
Чтобы реализовать страницу, на которой будут виджеты с последними записями для каждой категории на WordPress, тебе понадобится немного изменить код, который ты уже попробовал использовать. Вот пример, как это можно сделать:
// Получаем список категорий
$categories = get_categories();

// Проходимся по каждой категории
foreach ( $categories as $category ) {
    // Устанавливаем параметры запроса
    $args = array(
        'post_type'      => 'post',
        'posts_per_page' => 5,
        'category_name'  => $category->slug // Используем slug категории
    );
    
    // Создаем новый запрос с заданными параметрами
    $query = new WP_Query( $args );
    
    // Проверяем, есть ли записи в данной категории
    if ( $query->have_posts() ) { 
        echo '<h3>' . $category->name . '</h3>';
        
        // Выводим последние записи
        while ( $query->have_posts() ) {
            $query->the_post();
            echo '<p><a href="' . get_permalink() . '">' . get_the_title() . '</a></p>';
        }
    }
    
    // Сбрасываем запрос
    wp_reset_postdata();
}
Этот код будет выводить виджеты с последними записями для каждой категории. Заголовки записей будут являться ссылками на сами записи. Ты можешь изменить количество выводимых записей, изменив значение параметра 'posts_per_page'. Также, если ты хочешь изменить формат отображения записей, ты можешь модифицировать соответствующую часть кода. Надеюсь, это поможет тебе реализовать страницу, которую ты хочешь создать! Если у тебя возникнут еще вопросы, не стесняйся задавать их. Удачи в работе с WordPress!

Добавить ответ