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.9
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 );
}