Как определить is_404(), is_page() или другие условия в WordPress?

12 сент. 2014 г., 09:42:40
Просмотры: 15.2K
Голосов: 0

Есть ли способ вывести что-то вроде:

echo $current_type;

чтобы получить результат:

is_404() или is_page() или любой другой is_blabla()

1
Комментарии

Ваш вопрос был помечен как "непонятно, что вы спрашиваете", и я проголосовал именно так. Как я спрашивал в вашем предыдущем вопросе - что вы пытаетесь достичь. В текущем виде никто не понимает, какой результат вы ожидаете. Пожалуйста, внесите [правку] и объясните, почему вам нужно это сделать, чего вы пытаетесь достичь с ожидаемым результатом

Pieter Goosen Pieter Goosen
12 сент. 2014 г. 10:55:48
Все ответы на вопрос 1
1

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 }
12 сент. 2014 г. 09:58:28
Комментарии

именно этого я и хотел — получить строку is_ABCD независимо от текущего объекта. спасибо.

T.Todua T.Todua
1 сент. 2016 г. 14:22:19