web-dev-qa-db-fra.com

Avis: Index non défini: suppress_filters

Je travaille sur un thème sur lequel je travaille et j'espère que quelqu'un pourra m'aider, s'il vous plaît.

J'ai utilisé cette fonction créée par Justin Tadlock pour afficher des types de publication personnalisés sur la page du blog. Wp-debug étant défini sur true, un message Avis: index non défini: suppress_filters apparaît.

Le code est comme suit:

// 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;
}

Si quelqu'un pouvait aider, ce serait génial. Merci

1
Chris

Si $query->query_vars['suppress_filters'] n'est pas défini, vous obtiendrez ce message.

Utilisez empty($query->query_vars['suppress_filters']) au lieu de false == $query->query_vars['suppress_filters'] ) ou utilisez $query->get('suppress_filters') comme ceci false == $query->get('suppress_filters').

Non testé (testé au minimum), mais je pense que l’un ou l’autre de ceux-ci devrait vous donner les mêmes résultats moins l’avis.

2
s_ha_dum

On dirait que $query->query_vars['suppress_filters'] n'est pas défini. Essaye ça:

// 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;
}

J'ai ajouté une vérification pour m'assurer que $query->query_vars['suppress_filters'] est bien défini avant de vérifier s'il s'agit de false. (J'ai également cassé l'instruction if() pour en faciliter la lecture. (Je pense avoir correctement mis en correspondance tous les ( et ).)

0
Pat J