WordPress как на ладони
wordpress jino

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

<?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вязанные функции

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

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

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

is_single 10 комментариев
  • petrozavodsky706 cайт: alkoweb.ru

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

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

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

    Ответить2 года назад #
  • Александр

    Приветствую.
    Подскажите пожалуйста как на отдельно взятых постах, запретить показ рекламы Google Adsense.

    Так как на этих отдельно взятых постах установлена автоматическая переадресация, а Гугл за переадресацию где отображается реклама наказывает.

    А скорее всего лучше наверное для самих рубрик (к которым привязаны эти посты) сделать запрет на показ рекламы Google Adsense. Так как самих рубрик около 15 ну а публикаций соответственно немерено.
    Заранее благодарен.

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

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

  • Виктор

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

    ?php if ( ! is_category ( array(3) ) ) ( ! is_single ( array(3) ) ) { ?
    Ответить18 дней назад #

Здравствуйте, !

Ваш комментарий
Предпросмотр