is_singular()
Проверяет просматривается ли страница записи (пост, страница, свой тип записи, вложение). Можно указать тип записи для проверки. Условный тег.
Если для функции не указан параметр, то функция объединяет в себе проверку всех условных тегов: is_single() + is_page() + is_attachment().
Логика этой функции отличается от функции is_single() - там проверяется отдельная запись, а тут проверяется тип записи.
Используйте is_single(), когда нужно проверить страницу по конкретному ID, имени записи, а не по её типу: post, page, attachment.
Хуков нет.
Возвращает
true|false
.
Использование
if( is_singular( $post_types ) ){ // ... }
- $post_types(строка/массив)
- Тип записи или несколько типов записей, которые нужно проверять. Несколько типов записей нужно указывать в массиве.
Примеры
#1 Проверяет, является ли текущая страница обычным постом
if ( is_singular( 'post' ) ){ // viewing a regular post }
#2 Пример различных проверок
// true, если выполнено одно из следующих условий: // is_single(), is_page() or is_attachment(). is_singular(); // True при просмотре поста book (Custom Post Type). is_singular( 'book' ); // True при просмотре записи типа newspaper или book. is_singular( [ 'newspaper', 'book' ] );
#3 Вывод содержимого только на отдельных страницах
Таким кодом, можно вывести разные рекламные блоки в сайдбаре для отдельных станиц и страниц отличных от них (архивов).
if ( is_singular() ) { // Реклама №1 } else { // Реклама №2 }
#4 Как определить отдельную страницу указанного типа
Этот пример, показывает как определить отдельную страницу указанного типа записи: book
if( is_singular('book') ){ // Код, который будет работать только на отдельных страницах с типом записи book }
#5 Определение нескольких типов записей
Пример, показывающий как передавать несколько типов записей в массиве:
if( is_singular( ['newspaper', 'book'] ) ){ // здесь какой-нибудь код }
Заметки
- Смотрите: is_page()
- Смотрите: is_single()
- Global. WP_Query. $wp_query WordPress Query object.
Список изменений
С версии 1.5.0 | Введена. |
Код is_singular() is singular WP 6.8
function is_singular( $post_types = '' ) { global $wp_query; if ( ! isset( $wp_query ) ) { _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1.0' ); return false; } return $wp_query->is_singular( $post_types ); }