Пользовательский заголовок страницы архива для Custom Post Type

22 янв. 2014 г., 10:17:54
Просмотры: 22.2K
Голосов: 2

Интересно, могу ли я создать пользовательский заголовок страницы для страницы архива моего Custom Post Type? Сейчас я использую:

<title><?php wp_title( '|', true, 'right' ); ?></title>

Для обычных страниц это отображает то, что мне нужно, но на странице архива пользовательского типа записей отображается:

Название Custom Post Type Archive

Возможно ли добавить пользовательский заголовок страницы только для этой страницы?

0
Все ответы на вопрос 4
0

Вы можете добавить фильтр в файл functions.php вашей темы. Он изменяет мета-заголовок архивной страницы для пользовательского типа записи 'myCPT'.

function new_cpt_archive_title($title){

    if ( is_post_type_archive('myCPT') ){
        $title = 'Архив пользовательского типа записей - ' . get_bloginfo('name');
        return $title;
    }

    return $title;
} 

add_filter( 'pre_get_document_title', 'new_cpt_archive_title', 9999 );
17 дек. 2019 г. 13:27:09
0

Вы можете использовать условный код is_archive в вашем файле header.php для управления заголовком

    <?php if(is_archive()): ?>
    <title>Архивная страница</title>
    <?php else: ?>
    <title><?php wp_title( '|', true, 'right' ); ?></title>
    <?php endif; ?>
22 янв. 2014 г. 10:26:17
1
-1

Да, и есть несколько способов сделать это.

Подключите это из файла функций дочерней темы:

function wpsites_add_cpt_archive_page_title() {

if ( is_post_type_archive( 'your-cpt-name' ) )

echo '<h1 class="entry-title">Заголовок архива вашего CPT</h1>';

}

add_action('genesis_before_content', 'wpsites_add_cpt_archive_page_title');

Приведённый выше фрагмент кода использует хук genesis_before_content, который вы можете заменить на специфичный для темы хук или стандартный хук WordPress, например loop_start.

Вы также можете добавить поддержку страницы настроек архива произвольного типа записей в код, который создаёт CPT, если ваша тема это поддерживает.

22 янв. 2014 г. 10:29:18
Комментарии

Похоже, OP спрашивает про элемент <title> в HTML <head>.

norman.lol norman.lol
10 мая 2019 г. 22:07:03
4
-1

Теперь вы можете использовать это

<?php 
if(archive()) {
  if (have_posts() ) :
    the_archive_title( '<h1 class="page-title">', '</h1>' );
    while ( have_posts() ) : 
      the_post();
    endwhile;
  endif; 
}
?>

или

<?php
$post_archive = post_type_archive_title('', false);
?>

для вывода записей

<?php if ( is_post_type_archive() ) { ?>
<title><?php post_type_archive_title(); ?></title>
<?php } ?>

справочник

документация WordPress

10 мая 2019 г. 18:54:13
Комментарии

В вашем коде нет проверки на архив пользовательского типа записи. Пожалуйста, [отредактируйте] ваш ответ и добавьте это.

fuxia fuxia
10 мая 2019 г. 21:34:32

Похоже, автор вопроса спрашивает про элемент <title> в HTML <head>.

norman.lol norman.lol
10 мая 2019 г. 22:06:10

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

DutchPrime DutchPrime
11 мая 2019 г. 10:14:51

Функция post_type_archive_title работает для меня в archive-*cpt*.php, спасибо!

Arthur Shlain Arthur Shlain
29 дек. 2021 г. 23:38:21