Как определить 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 }