is_single()
Проверяет находимся ли мы на странице поста (записи любого типа). Записи с типом attachment
и page
не проверяются. Условный тег.
Можно указать конкретный пост или несколько постов для проверки находимся ли мы на странице указанного поста/постов.
Используйте is_singular( $post_type ), когда нужно проверить страницу записи по её типу: post, page, attachment, а не по конкретному ID, имени и т.д.
Хуков нет.
Возвращает
true|false
.
Использование
if( is_single( $post ) ){ // ... }
- $post(строка/число/массив)
ID, заголовок или ярлык записи (слаг), для того чтобы выявить конкретный пост.
Можно передать массив из нескольких чисел или строк.
Проверка поста идет в следующем порядке полей: ID, post_title, post_name.
Также, для древовидных записей, можно передать путь:
books/my-book
в этом случае поиск будет производиться функцией get_page_by_path().По умолчанию: ''
Примеры
#1 Различные примеры использования:
is_single(); // Когда отображается любая отдельная запись (пост). is_single( '17' ); is_single( 17 ); // Сработает только, когда отображается запись с ID 17. is_single( 'Музыка Фламенко' ); // Сработает для поста с заголовком "Музыка Фламенко". is_single( 'musika-flamenko' ); // Сработает для поста со слагом "musika-flamenko". is_single( [ 17, 'musika-flamenko', 'Музыка Фламенко' ] ); // Сработает для подходящих постов. Добавлено в версии 2.5. is_single( 'musika/flamenko' ); // Сработает для древовидной записи со слагом flamenko, дочерней к записи со слагом musika.
#2 Проверка по ярлыку и кириллица
Если у вас на сайте не установлен плагин транслитерации ярлыков Cyr to Lat enhanced или ему подобный, то при публикации записи, она будет иметь кириллический ярлык преобразованный в кодированные символы, например слово "мой" будет выглядеть так: %D0%BC%D0%BE%D0%B9.
В результате проверка по кириллическому ярлыку работать не будет. Чтобы она работала нужно изменить ярлык с помощью sanitize_title():
is_single('моя-музыка'); // неправильно is_single( sanitize_title('моя-музыка') ); // правильно
#3 Добавим файл стилей CSS для любой отдельной страницы Post
if( is_single() ){ wp_enqueue_style( 'handle', 'path/to/cssfile.css' ); }
Заметки
- Смотрите: is_page()
- Смотрите: is_singular()
- Global. WP_Query. $wp_query WordPress Query object.
Список изменений
С версии 1.5.0 | Введена. |
Код is_single() is single WP 6.6.2
function is_single( $post = '' ) { 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_single( $post ); }