get_the_category_list как удалить без рубрики? - PullRequest
0 голосов
/ 30 апреля 2020

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

wp_list_categories () преформатирует его и дает вам раздел без категории, который я хотел бы удалить.

$category_id = wp_list_categories();
echo $category_id ;

Мои категории, с которыми я тестирую:

Categories
    Test Prep
        Test Taking Skills
            Study Skills
    Uncategorized

У меня получилось, но как удалить Uncategorized?

$categories_list = get_the_category_list( __( ', ', 'mytheme' ) );

$category_id = get_cat_ID($categories_list);
$categories = get_categories(array('parent_of' => $category_id));
foreach($categories as $category) {
    echo '<a href="' . get_category_link( $category->term_id ) . '">' .       $category->name.'</a><br> ';
}

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Вот как вы можете это сделать:

get_the_category_list()

Вам понадобится фильтр the_category_list. Добавьте это к своим функциям. php. Если вы посмотрите на внутренние элементы get_the_category_list(), он использует этот фильтр для построения категорий перед выводом:

add_filter( 'the_category_list', static function( $categories ){
    // Loop through all the categories that are found
    foreach ( $categories as $index => $category ) {
        // if the category object slug equals "uncategorized"
        if ( $category->slug === 'uncategorized' ) :
            // remove it from the list of categories
            unset($categories[$index]);
        endif;
    }
    // return the categories
    return $categories;
});

wp_list_categories()

Это немного проще, потому что вы можете передать exclude аргумент и использовать слаг:

wp_list_categories([
   'exclude' => 'uncategorized',
]);
0 голосов
/ 01 мая 2020

Вам нужна категория "без категории"?

Если нет, вы можете установить другой термин категории в качестве стандартной категории: Wordpress Backend для "Настройки" -> "Написание" -> "Категория сообщений по умолчанию" "и выберите термин категории.

После этого вы сможете удалить его из категории и, следовательно, не появится в get_the_category_list, поскольку он больше не существует.

...