Как получить заголовок категории и архива?

12 апр. 2012 г., 15:06:19
Просмотры: 68.5K
Голосов: 10

Когда я делаю запрос к категории (category.php), как мне получить заголовок текущей категории, то есть той, к которой выполняется запрос?

И как получить заголовок для тега и даты (будь то день, месяц или год)?

0
Все ответы на вопрос 5
2
18

Для категории используйте функцию single_cat_title:
http://codex.wordpress.org/Function_Reference/single_cat_title

Для метки используйте функцию single_tag_title:
http://codex.wordpress.org/Function_Reference/single_tag_title

Для даты используйте функцию get_the_date:
http://codex.wordpress.org/Function_Reference/get_the_date

Например, если вы откроете тему twentyten, вы увидите следующее:

category.php:

<h1 class="page-title"><?php
    printf( __( 'Архивы категории: %s', 'twentyten' ), '<span>' . single_cat_title( '', false ) . '</span>' );
?></h1>

date.php:

<h1 class="page-title">
    <?php if ( is_day() ) : ?>
        <?php printf( __( 'Ежедневные архивы: <span>%s</span>', 'twentyten' ), get_the_date() ); ?>
    <?php elseif ( is_month() ) : ?>
        <?php printf( __( 'Ежемесячные архивы: <span>%s</span>', 'twentyten' ), get_the_date( _x( 'F Y', 'Формат даты для ежемесячных архивов', 'twentyten' ) ) ); ?>
    <?php elseif ( is_year() ) : ?>
        <?php printf( __( 'Ежегодные архивы: <span>%s</span>', 'twentyten' ), get_the_date( _x( 'Y', 'Формат даты для ежегодных архивов', 'twentyten' ) ) ); ?>
    <?php else : ?>
        <?php _e( 'Архивы блога', 'twentyten' ); ?>
    <?php endif; ?>
</h1>
12 апр. 2012 г. 15:16:09
Комментарии

функция single_tag_title получает заголовок тега или выводит его?

henrywright henrywright
20 февр. 2014 г. 01:23:25

второй параметр функции single_tag_title отвечает за вывод. если передать true, то заголовок будет выведен. если false, то он будет возвращен.

Eugene Manuilov Eugene Manuilov
20 февр. 2014 г. 09:08:34
0

В дополнение к другим ответам, вы можете использовать: single_term_title('Сейчас просматривается: ') для отображения 'Сейчас просматривается термин' (где термин — это название элемента таксономии, который вы просматриваете). (См. Codex)

Это работает как для пользовательских таксономий, так и для терминов категорий и меток.

Также вам может оказаться проще использовать wp_title, который обрабатывает таксономии и архивы, отображая соответствующий заголовок в зависимости от того, что вы просматриваете. По сути, он переключается между всеми доступными функциями для отображения заголовков, поэтому вы можете захотеть изучить исходный код. Другие функции включают:

12 апр. 2012 г. 15:20:14
0

Попробуйте следующее:

<?php single_cat_title(); ?> // название категории
<?php single_tag_title(); ?> // название метки
<?php the_time('F jS, Y'); ?> // день, месяц, год
<?php the_time('F, Y'); ?> // месяц, год
<?php the_time('Y'); ?> // год

Смотрите Codex для получения дополнительной информации о форматировании даты: ЗДЕСЬ

P.S. Эти функции должны вызываться внутри цикла. За исключением первых двух, которые должны быть вне цикла.

12 апр. 2012 г. 15:16:56
0

Спасибо за ваши ответы! Я сделал это для даты:

для archive.php

<?php
/*получаем заголовок архива*/
if ( is_day() ) { $this_header = "Ежедневные архивы за " . get_the_date(); }
else if ( is_month() ){ $this_header = "Ежемесячные архивы за " . get_the_date('F, Y'); }
else if ( is_year() ){ $this_header = "Ежегодные архивы за " . get_the_date('Y'); }
else { $this_header = "Архивы"; }
?>

затем просто

<?php echo $this_header; >
13 апр. 2012 г. 04:42:08
0

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

Этот код получает название категории текущей записи, а затем отображает её в виде ссылки на записи, перечисленные в категории через файл category.php.

<?php
$category = get_the_category();
$current_category = $category[0];
$parent_category = $current_category->category_parent;
if ( $parent_category != 0 ) {
echo '<a href="' . get_category_link($parent_category) . '">' . get_cat_name($parent_category) . '</a>';
}
echo '<a href="' . get_category_link($current_category) . '">' . $current_category->cat_name . '</a>';
?>
13 апр. 2012 г. 05:20:44