Исключить категорию Wordpress

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

Как можно отображать только категории один раз?

В настоящее время, если два поста относятся к одной и той же категории, категория удваивается.

Это мой код ниже

        <div class = "row ptb-20">

            <?php

            $args = array(
                'category_name' => 'actualites',
            );

            // Custom query.
            $query = new WP_Query( $args );

            // Check that we have query results.
            if ( $query->have_posts() ) {

                // Start looping over the query results.
                while ( $query->have_posts() ) {

                    $query->the_post();?>

                    <div class = "category-filter">
                        <div class = "single-filter">

                            <?php

                            $categories = get_the_category();
                            $separator = ", ";
                            $output = ' ';

                            if ($categories) {

                                foreach ($categories as $category) {

                                    $output .= '<li><a href = "' . get_category_link($category->term_id) . '">' . $category->cat_name . '</a></li>';

                                }

                                echo trim($output, $separator);

                            }

                            ?>

                        </div>   
                    </div>

                    <?php

                } // End while 
            } // End if

            else { echo '<p>Aucune actualité trouvée</p>'; } ?>

            <?php wp_reset_postdata(); ?>

        </div>
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
337
2

Ответы 2

Способ 1: исключить категорию из WordPress с помощью плагина Первое, что вам нужно сделать, это установить и активировать файл Окончательный плагин для исключения категорий. Для получения более подробной информации вы должны следовать нашему руководству по установке плагина WordPress.

После активации вам нужно будет перейти на страницу Настройки » Исключение категорий. Он отобразит все категории, доступные в вашем блоге WordPress.

Способ 2: исключить категорию с домашней страницы WordPress с помощью кода Этот метод требует, чтобы вы добавили код в файлы WordPress. Если вы еще этого не сделали, посмотрите наше руководство о том, как копировать и вставлять фрагменты кода в WordPress.

Вам нужно будет добавить следующий код в файл functions.php вашей темы или плагин для конкретного сайта.

   function exclude_category_home( $query ) {
    if ( $query->is_home ) {
    $query->set( 'cat', '-5' );
    }
    return $query;
    }


add_filter( 'pre_get_posts', 'exclude_category_home' );

Не забудьте заменить ID (-5) на ID вашей категории. Он скроет все сообщения блога с домашней страницы, принадлежащие категории, соответствующей этому идентификатору.

Примечание. Не забудьте добавить знак минус (-) к идентификатору категории.

См.: https://www.wpbeginner.com/wp-tutorials/how-to-exclude-a-category-from-your-wordpress-homepage/

Если я правильно понимаю вашу проблему, вы можете ввести переменную, в которой вы будете помнить, какие категории уже использовались, чтобы вы не включали их более одного раза.

    <div class = "row ptb-20">

        <?php

        $args = array(
            'category_name' => 'actualites',
        );

        // Custom query.
        $query = new WP_Query( $args );

        // Check that we have query results.
        if ( $query->have_posts() ) {

            // Start looping over the query results.
            while ( $query->have_posts() ) {

                $query->the_post();?>

                <div class = "category-filter">
                    <div class = "single-filter">

                        <?php

                        $categories = get_the_category();
                        $categories_displayed = [];
                        $separator = ", ";
                        $output = ' ';

                        if ($categories) {

                            foreach ($categories as $category) {
                                if (!in_array($category->cat_name, $categories_displayed)) { 
                                    $output .= '<li><a href = "' . get_category_link($category->term_id) . '">' . $category->cat_name . '</a></li>';

                                    $categories_displayed[] = $category->cat_name;
                                }
                            }

                            echo trim($output, $separator);

                        }

                        ?>

                    </div>   
                </div>

                <?php

            } // End while 
        } // End if

        else { echo '<p>Aucune actualité trouvée</p>'; } ?>

        <?php wp_reset_postdata(); ?>

    </div>

Привет, и спасибо за ваш ответ. На данный момент ваш код сказал: -> синтаксическая ошибка, неожиданный '[' в (url) -> выше $separator

WDCreativ 11.02.2019 11:03

Извините, я не проверял это, но это должно быть легко исправить. Обновление сейчас

matiit 11.02.2019 11:04

Спасибо за обновление, но опять ошибка, на том же месте (в начале ругают $separator)

WDCreativ 11.02.2019 11:08

я еще не нашел решение

WDCreativ 11.02.2019 15:55

Другие вопросы по теме