Как определить is_404(), is_page() или другие условия в WordPress?
Есть ли способ вывести что-то вроде:
echo $current_type;
чтобы получить результат:
is_404()
или is_page()
или любой другой is_blabla()

is_404()
и is_page()
— это просто условные функции, которые проверяют выполнение условия. Например, is_404()
проверяет, является ли текущая страница 404 ошибкой, и возвращает true в случае успеха и false в случае неудачи.
ОЧЕНЬ ВАЖНОЕ ЗАМЕЧАНИЕ: Условные теги запросов не работают до выполнения запроса. До этого они всегда возвращают false
Вы можете получить объекты текущей страницы, просто выполнив var_dump
для get_queried_object()
, например:
<?php
$queried_object = get_queried_object();
var_dump( $queried_object );
?>
РЕДАКТИРОВАНИЕ
Все эти условные функции устанавливаются в классе WP_Query
, а затем отдельно оборачиваются в функцию в wp-includes/query.php
. Например, is_404()
— это просто обёртка для $wp_query->is_404();
697 /**
698 * Является ли запрос 404 ошибкой (не возвращает результатов)?
699 *
700 * @see WP_Query::is_404()
701 * @since 1.5.0
702 * @uses $wp_query
703 *
704 * @return bool
705 */
706 function is_404() {
707 global $wp_query;
708
709 if ( ! isset( $wp_query ) ) {
710 _doing_it_wrong( __FUNCTION__, __( 'Условные теги запросов не работают до выполнения запроса. До этого они всегда возвращают false.' ), '3.1' );
711 return false;
712 }
713
714 return $wp_query->is_404();
715 }
