WordPress как на ладони
Дешевый WordPress пакет для разработки Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

is_single() WP 1.5

Проверяет отображается ли страница записи любого типа записей кроме attachment и page. Условные тег.

В первом параметре $post можно сузить проверку до конкретного поста.

Если нужно проверить отображается ли запись любого типа, включая attachment и page в одной проверке, используйте is_singular().

В is_singular( $post_type ) можно указать проверку для записей определенного типа.

Работает на основе: WP_Query::is_single()
✈ 1 раз = 0.00003с = очень быстро | 50000 раз = 0.02с = скорость света

Хуков нет.

Возвращает

true или false.

Использование

if( is_single( $post ) ){
	// ... 
}
$post(строка/число/массив)
ID, заголовок или ярлык (слаг) записи, для того чтобы выявить конкретный пост.
По умолчанию: нет

Примеры

#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.

#2 Проверка по ярлыку и кириллица

Если у вас на сайте не установлен плагин транслитерации ярлыков Cyr to Lat enhanced или ему подобный, то при публикации записи, она будет иметь кириллический ярлык преобразованный в кодированные символы, например слово "мой" будет выглядеть так: %D0%BC%D0%BE%D0%B9.

В результате проверка по кириллическому ярлыку работать не будет. Чтобы она работала нужно изменить ярлык с помощью sanitize_title():

is_single('моя-музыка'); // неправильно

is_single( sanitize_title('моя-музыка') ); // правильно

Код is_single: wp-includes/query.php VER 4.9.8

<?php
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 );
}

Cвязанные функции

Из метки: Условные теги (типов страниц и запросов )

Еще из метки: Условные теги (все)

Еще из раздела: Запросы

Еще из тегов шаблона: Основные

9 комментов
  • petrozavodsky772 cайт: alkoweb.ru

    а есть ли такой тег что мог проверить нахожусь ли я на странице записи материала с типом news например?

    Ответить4.8 года назад #
    • Kama6896
      if( is_singular('news') ){
      	// Код, который будет работать только на 
      	//отдельных страницах с типом записи news
      }
      1
      Ответить4.8 года назад #
  • Вольдемар

    Здравствуйте!
    Если проверка
    if ( is_single() )
    не срабатывает на странице поста, где стоит смотреть ошибку?

    Ответить2.8 года назад #
  • zgoba cайт: zgoba.ru

    А возможно ли задать условие с этим тегом, чтобы выводились (не выводились) записи определенных категорий?

    Ответить1.5 год назад #
  • Виктор

    А можно запретить одной строкой в рубриках и записях?
    Например

    ?php if ( ! is_category ( array(3) ) ) ( ! is_single ( array(3) ) ) { ?
Здравствуйте, !     Войти . Зарегистрироваться