удалить заголовки архивов категорий - PullRequest
0 голосов
/ 18 июня 2020

Как мне заставить его проверять наличие дочерней категории или подкатегории?

function wporg_remove_category_title( $title ) {
        if ( is_category() ) {
            $title = single_cat_title( '', false );
        }
        return $title;
    }
    add_filter( 'remove_the_archive_title', 'wporg_remove_category_title' );

1 Ответ

0 голосов
/ 18 июня 2020

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


Если вы используете the_archive_title() внутри файла темы archive.php, он всегда будет отображать Archive: Post Type Name. Если вы хотите избавиться от Archive: перед заголовком, вы можете использовать:

single_cat_title();

Это просто отобразит заголовок архива.


Чтобы проверить, есть ли у категории дочерняя категория, вы можете использовать функцию wordpress get_term_children()

https://developer.wordpress.org/reference/functions/get_term_children/

Это даст вам массив всех идентификаторов дочерних терминов . Поэтому, если вы хотите проверить, есть ли у термина категории дочерние элементы, вы можете сделать это, сохранив дочерние элементы в массиве и проверив, пуст ли этот массив.

$children = get_term_children($term_id, $taxonomy);

if( empty( $children ) ) {
    // do something if there are no children
} else {
    // do something if there are children
}
...