Wordpress - post_category не показывает результата

Я пытаюсь создать небольшой обзор последних сообщений на моей странице. Все хорошо работает с запросом "wp_get_recent_posts". Теперь я пытался добавить некоторые значки в заголовок, но это всегда не дает мне результата, как только я пытаюсь получить post_category сообщения.

Если попытаться изменить «категорию» $args => на «1,2,3,4,...», но это не помогло.

Любой совет высоко ценится. Мой код:

                    <?php

                        $args = array(
                            'numberposts' => 5,
                            'offset' => 0,
                            'category' => '',
                            'orderby' => 'post_date',
                            'order' => 'DESC',
                            'include' => '',
                            'exclude' => '',
                            'meta_key' => '',
                            'meta_value' =>'',
                            'post_type' => 'post',
                            'post_status' => 'draft, publish, future, pending, private',
                            'suppress_filters' => true
                        );

                        $recent_posts = wp_get_recent_posts( $args, ARRAY_A );

                        foreach($recent_posts as $post):
                            if ($post['post_category'] == 1):
                                echo "<p><i class=\"fas fa-book\">&nbsp;&nbsp;</i>{$post['post_title']}<br></p>";
                            elseif ($post['post_category'] == 2):
                                echo "<p><i class=\"fas fa-desktop\">&nbsp;&nbsp;</i>{$post['post_title']}<br></p>";
                            endif;
                            echo $post['post_category']; //Debug, no output.
                            echo $post['post_title']; //Debug, output: "example post"
                            echo $post['post_date']; //Debug, output: "2019-05-21"
                        endforeach;

                        ?>

Объект сообщения, похоже, не имеет свойства post_category: codex.wordpress.org/Class_Reference/WP_Post. Что это за post_category? что за категория? дайте пример категории пожалуйста

Karpfen93 22.05.2019 10:22

Действительно, свойство post_category не существует в post - спасибо. Есть ли способ, как я могу получить доступ к категории отдельного сообщения, чтобы этот скрипт работал?

Toharawk 22.05.2019 10:43
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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
2
582
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Объект сообщения не имеет свойства post_category: https://codex.wordpress.org/Class_Reference/WP_Post

Вы можете использовать функцию get_the_category с идентификатором сообщения (https://developer.wordpress.org/reference/functions/get_the_category/):

<?php    

                        $args = array(
                            'numberposts' => 5,
                            'offset' => 0,
                            'category' => '',
                            'orderby' => 'post_date',
                            'order' => 'DESC',
                            'include' => '',
                            'exclude' => '',
                            'meta_key' => '',
                            'meta_value' =>'',
                            'post_type' => 'post',
                            'post_status' => 'draft, publish, future, pending, private',
                            'suppress_filters' => true
                        );

                        $recent_posts = wp_get_recent_posts( $args, ARRAY_A );

                        foreach($recent_posts as $post):

                            $categories = get_the_category($post['ID']);

                            foreach ($categories as $category):
                                if ($category->cat_name == 'firstcategory'):
                                    //first category found                                  
                                    var_dump($category->cat_name);
                                endif;
                                if ($category->cat_name == 'secondcategory'):
                                    //second category found
                                    var_dump($category->cat_name);
                                endif;
                            endforeach;

                        endforeach;
                        ?>

Спасибо за это решение! К сожалению, как только я выполняю "var_dump($category->name)", я получаю только NULL NULL NULL NULL NULL. Также, если я удалю "имя" и выполню только "var_dump($category)", я получу 5 пустых массивов. Этот метод работает для вас? Или это может быть из-за «foreach» внутри $post «foreach»? К сожалению, я не могу опубликовать другой фрагмент кода.

Toharawk 22.05.2019 11:51

что выводит var_dump($categories) перед циклом категорий?

Karpfen93 22.05.2019 14:44

извините, была ошибка: вам нужно получить id так: $post['ID']. также я разместил полный код, который работает для меня...

Karpfen93 23.05.2019 00:25

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