Примечание: Неопределенный индекс: подавлять фильтры
Я занимаюсь устранением ошибок в теме, над которой работаю, и надеюсь, что кто-нибудь сможет мне помочь, пожалуйста.
Я использовал эту функцию, созданную Джастином Тэдлоком, для отображения пользовательских типов записей на странице блога, и при установке wp-debug в значение true я получаю уведомление: Неопределенный индекс: сообщение suppress_filters.
Код выглядит следующим образом:
// Custom Post Type for the public blog posts to show on Index or blog page
add_filter( 'pre_get_posts', 'my_get_posts' );
function my_get_posts( $query ) {
if ( ( is_home() && false == $query->query_vars['suppress_filters'] ) || is_feed() )
$query->set( 'post_type', array( 'news', 'attachment' ) );
return $query;
}
Если бы кто-нибудь мог помочь, это было бы здорово. Спасибо
2 answers
Если $query->query_vars['suppress_filters']
не задано, вы получите это сообщение.
Используйте empty($query->query_vars['suppress_filters'])
вместо false == $query->query_vars['suppress_filters'] )
или используйте $query->get('suppress_filters')
вот так false == $query->get('suppress_filters')
.
Непроверенный (минимально протестированный), но я считаю, что любой из них должен дать вам те же результаты за вычетом уведомления.
Звучит так, как будто $query->query_vars['suppress_filters']
не задано. Попробуйте это:
// Custom Post Type for the public blog posts to show on Index or blog page
add_filter( 'pre_get_posts', 'my_get_posts' );
function my_get_posts( $query ) {
if (
( is_home() && (
isset( $query->query_vars['suppress_filters'] ) &&
false == $query->query_vars['suppress_filters']
)
) ||
is_feed()
) {
$query->set( 'post_type', array( 'news', 'attachment' ) );
}
return $query;
}
Я добавил проверку, чтобы убедиться, что $query->query_vars['suppress_filters']
действительно установлен, прежде чем вы проверите, установлен ли он false
. (Также я разделил инструкцию if()
для облегчения чтения. (Я думаю, что я правильно сопоставил все (
и )
.)