Как отфильтровать категорию в WordPress / PHP? - PullRequest
1 голос
/ 20 марта 2019

У меня есть php-код, как показано ниже:

$category = get_the_category(); // Строка # A

echo '<pre>'; print_r($category); echo '</pre>'; // Строка #B, добавленная для целей отладки

Код в строке # A извлекает категории сообщений.

Код во 2-й строке, который я добавил для отладки, возвращает следующий массив:

Array
(
    [0] => WP_Term Object
        (
            [term_id] => 13085
            [name] => Cannabis
            [slug] => democracy_project_cannabis
            [term_group] => 0
            [term_taxonomy_id] => 13085
            [taxonomy] => category
            [description] => Hello World 
            [parent] => 13083
            [count] => 8
            [filter] => raw
            [cat_ID] => 13085
            [category_count] => 8
            [category_description] => Good Morning
            [cat_name] => Cannabis
            [category_nicename] => democracy_project_cannabis
            [category_parent] => 13083
        )

    [1] => WP_Term Object
        (
            [term_id] => 13093
            [name] => Today
            [slug] => today
            [term_group] => 0
            [term_taxonomy_id] => 13093
            [taxonomy] => category
            [description] => 
            [parent] => 0
            [count] => 3
            [filter] => raw
            [cat_ID] => 13093
            [category_count] => 3
            [category_description] => 
            [cat_name] => Today
            [category_nicename] => today
            [category_parent] => 0
        )

)

Постановка задачи:

Мне интересно, какой php-код мне нужно добавить после строки # A, чтобы он занимал только категорию [name] => Today.

Код в строке # A возвращаетсписок категорий для конкретного поста.Я просто хочу взять только одну категорию.

Я думаю, что мне нужно использовать метод array_filter (), но я не уверен, как его использовать.

Ответы [ 2 ]

1 голос
/ 20 марта 2019

Я думаю, вам лучше получать нужные вам посты на основе определенной категории, а не фильтровать все.

$term = get_term_by('name', 'Today', 'category');
if ($term) {
  $category = get_the_category($term->term_id);
} else {
  echo "Category not found";
}
0 голосов
/ 20 марта 2019

Вы можете перебрать возвращенный массив $category:

foreach($category as $cat) {

    if ($cat->name == 'Today') {
        //do your stuff
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...