is_single() WP 1.5
Проверяет находимся ли мы на странице записи (поста любого типа). Записи с типом 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); // Сработает только, когда отображается запись с ID 17. Число можно указать строкой "17" is_single('Музыка Фламенко'); // Сработает для поста с заголовком "Музыка Фламенко". is_single('musika-flamenko'); // Сработает для поста со слагом "musika-flamenko". is_single( array(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('моя-музыка') ); // правильно
Заметки
- Смотрите: is_page()
- Смотрите: is_singular()
- Global. WP_Query. $wp_query WordPress Query object.
Список изменений
С версии 1.5.0 | Введена. |
Код is_single() is single WP 5.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 );
}