is_page() WP 1.5.0

Перевіряє, чи відображається сторінка “постійної сторінки”. Можна вказати ID, ярлик або заголовок сторінки для перевірки. Умовний тег.

Дивіться також схожі функції:

Поверне true під час передачі порожніх значень

Будьте уважні, тому що наступні дзвінки цієї функції повернуть true:

is_page( '' )
is_page( 0 )
is_page( '0' )
is_page( null )
is_page(false)
is_page( array() )

Не можна використовувати всередині Цикл WordPress

Через те, що в роботі циклу переписуються деякі глобальні змінні, is_page()не вдасться використовувати всередині циклу. Втім, у цьому немає потреби. Щоб використовувати цей Тег шаблону після циклу, довільний цикл (запит на отримання записів) треба скинути функцією wp_reset_query()

Основа для:
is_shop()
1 раз – 0.000012 сек
(дуже швидко) | 50000 разів – 0.02 сек
(швидкість світла) |
PHP 7.0.8, WP 4.6.1

Хуків немає.

Повертає

true|false. true, якщо відображається тип сторінки: Постійна сторінка та false, якщо відображається будь-який інший тип сторінки.

Використання

if( is_page( $page ) ){
	 //код
}
$page
(рядок/число/об’єкт/масив)

ID, ярлик, заголовок сторінки, яку потрібно перевірити. Можна вказати масив із будь-яких цих значень, щоб виставити на перевірку кілька різних сторінок.

За замовчуванням: ”

Приклади

0

#1 Функція у дії

Різні приклади використання – випадки коли функція повертає true (спрацьовує):

is_page();
// Коли відображається постійна сторінка.

is_page(42);
// коли відображається сторінка ID 42.

is_page('Про сайт');
// Коли відображається сторінка із заголовком "Про сайт".

is_page('o-saite');
// Коли відображається сторінка зі слагом "o-saite".

is_page(array(42, 'o-saite', 'Про сайт'));
//Параметри можна комбінувати. Додано у версії 2.5.

is_page(array('sample-page', 'contacts', 23, 34));
// Можна перевіряти кілька сторінок одночасно. Усі вказані сторінки різні...
0

#2 Примітка про кирилицю та ярлик (склад)

Якщо у вас на сайті кирилиця не змінюється на латиницю – немає плагіна Cyr-To-Lat або йому подібного, то при створенні запису її ярлик змінюється і кирилиця перетворюється на спеціальні символи (контакти – %d0%ba%d0%be%d0%bd %d1%82%d0%b0%d0%ba%d1%82%d1%8b), тому при перевірці потрібно це враховувати. Тобто. якщо перевіряється не заголовок, а ярлик (post_name), робіть так:

is_page('про сайт'); // неправильно

is_page( sanitize_title('про сайт') ); // правильно
0

#3 Перевірка Чи знаходимося ми на дочірній сторінці біля постійної сторінки

У WordPress немає функції is_subpage() . Але таку перевірку можна зробити таким кодом:

Приклад 1

global $post; // Якщо за межами циклу

if ( is_page() && $post->post_parent ) {
	// Це дочірня сторінка

} else {
	// Це не дочірня сторінка
}

Приклад 2

Ви можете створити свою функцію is_subpage() . Додайте такий код у файл теми functions.php . Вона працює як перший приклад: перевірять чи є поточна сторінка дочірньої, тобто. чи це сторінка взагалі і чи є в неї батьківська сторінка.

Таку функцію корисно створювати, коли на сайті передбачається виконувати перевірки як у прикладі 1 багато разів.

/*
 * Перевірять чи є поточна постійна сторінка дочірньою сторінкою
 * Повертає true або false
 */
function is_subpage() {
	global $post;

	if ( is_page() && $post->post_parent ) {
		return $post->post_parent;
	}
	return false;
}

Приклад 3

Використовуйте цей приклад, щоб визначити сторінку “Про сайт” або її дочірню сторінку. Цей приклад може стати в нагоді, коли потрібно вказати змінну для всієї гілки сторінок. Тут ми вкажемо картинку для гілки:

if ( is_page( 'about' ) || '2' == $post->post_parent ) {    
	// Це сторінка "Про сайт" або її дочірня сторінка
	$bannerimg = 'about.jpg';

}
elseif ( is_page( 'learning' ) || '56' == $post->post_parent ) {    
	$bannerimg = 'teaching.jpg';

}
elseif ( is_page( 'admissions' ) || '15' == $post->post_parent ) {
	$bannerimg = 'admissions.jpg';

}
else {
	$bannerimg = 'home.jpg'; // якщо ми на невизначеній сторінці, виведемо картинку за умовчанням
}

Приклад 4

Створимо функцію, яка перевірить всі рівні вкладеності, всю гілку підсторінок і якщо ми на одній зі сторінок гілки, то функція поверне true, інакше false. Тобто. припустимо у нас є сторінка “Про нас” у неї є дочірня сторінка “Наші послуги”, а ця сторінка має ще дочірні сторінки “Фарбування” та “Оздоблення”. У цю функцію передамо ID сторінки “Про нас” і вона повертатиме true якщо ми знаходимося на будь-якій із зазначених сторінок:

/*
 * Перевірка дочірніх сторінок за всіма рівнями вкладеності
 * $pid = ID сторінки всі рівні дочірніх сторінок якої потрібно перевірити
 */
function is_tree( $pid ){
	global $post;

	// якщо ми вже на вказаній сторінці виходимо
	if ( is_page( $pid ) )
		return true;

	$anc = get_post_ancestors( $post->ID );
	foreach ($anc as $ancestor) {
		if( is_page() && $ancestor == $pid ) {
			return true;
		}
	}

	return false;
}
0

#4 Перевірка поділу сторінки

У записах можна використовувати шоткод <!–nextpage–> . Такий код ділитиме текст запису на кілька сторінок. Це корисно, коли потрібно вивести метадані лише на першій сторінці, розділеній на кілька сторінок запису.

Приклад 1

$paged = $wp_query->get( 'paged');

if ( ! $paged || $paged < 2 ){
	// Пост не поділений на сторінки або це перша сторінка.
}
else {
	// Це 2,3,4... сторінка розділеного посту.
}

Приклад 2

$paged = get_query_var('paged')? get_query_var('paged'): false;
if ( $paged === false ){
	// Пост не поділений на сторінки або це перша сторінка.
}
else {
	// Це 2,3,4... сторінка розділеного посту.

}

Приклад 3

if ( 0 === get_query_var( 'page' ) ) {
	// Пост не поділений на сторінки або це перша сторінка.
}
else {
	// Це 2,3,4... сторінка розділеного посту.
}

нотатки

список змін

З версії 1.5.0Введено.

Код is_page() WP 6.0.2

function is_page( $page = '' ) {
	global $wp_query;

	if ( ! isset( $wp_query ) ) {
		_doing_it_wrong( __FUNCTION__, __( 'Conditional query tags до роботи не працює, тому що керує. Before then, they always return false.' ), '3.1.0' );
		return false;
	}

	return $wp_query->is_page( $page );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *