Как получить название текущего типа записи (get_post_types)?

25 нояб. 2014 г., 20:19:52
Просмотры: 74.7K
Голосов: 24

Как можно получить название текущего пользовательского типа записи (custom post type) и вывести его на странице?

0
Все ответы на вопрос 3
2
46

Вам понадобится объект записи каким-либо образом или, альтернативно, запрашиваемый объект в архивах типов записей. На отдельной странице вы можете сделать:

$post = get_queried_object();
$postType = get_post_type_object(get_post_type($post));
if ($postType) {
    echo esc_html($postType->labels->singular_name);
}

Или внутри цикла:

$postType = get_post_type_object(get_post_type());
if ($postType) {
    echo esc_html($postType->labels->singular_name);
}

В архивах типов записей:

$postType = get_queried_object();
echo esc_html($postType->labels->singular_name);

Все эти варианты дадут вам название в единственном числе для типа записи, которое было зарегистрировано в ключе labels функции register_post_type.

25 нояб. 2014 г. 20:48:41
Комментарии

Можешь помочь мне здесь. Я использую следующий код сейчас: http://snippi.com/s/wookr64 С этим кодом я хочу вызывать только текущие типы записей на странице. Сейчас он работает некорректно. Что я делаю не так?

Casper Casper
25 нояб. 2014 г. 22:34:06

@Casper Я думаю, тебе нужно сесть и заново сформулировать свой предыдущий вопрос. До сих пор совершенно непонятно, чего ты хочешь. Почему этот ответ на SO не сработал. Объясни на примерах и с названиями шаблонов, что именно тебе нужно. Спасибо

Pieter Goosen Pieter Goosen
26 нояб. 2014 г. 07:00:01
0

Чтобы получить название текущего типа записи, используйте следующий код внутри цикла.

$post_type = get_post_type( get_the_ID() );
echo '<p>' . $post_type . '</p>';

Или выведите название типа записи с помощью функции printf.

printf( __( 'Тип записи: %s', 'textdomain' ), get_post_type( get_the_ID() ) );
23 янв. 2017 г. 08:20:38
0

Метод get_post_type() возвращает тип записи для текущей записи или указанной записи. Подробнее здесь.

11 дек. 2020 г. 10:07:50