it-swarm.com.de

Hinweis: Undefinierter Index: suppress_filters

Ich arbeite an einem Thema, an dem ich arbeite, und hoffe, dass mir jemand helfen kann.

Ich habe diese Funktion von Justin Tadlock verwendet, um benutzerdefinierte Post-Typen auf der Blog-Seite anzuzeigen. Wenn wp-debug auf true gesetzt ist, wird die Nachricht Notice: Undefined index: suppress_filters angezeigt.

Der Code lautet wie folgt:

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

Wenn jemand helfen könnte, wäre das großartig. Vielen Dank

1
Chris

Wenn $query->query_vars['suppress_filters'] nicht festgelegt ist, wird diese Meldung angezeigt.

Verwenden Sie empty($query->query_vars['suppress_filters']) anstelle von false == $query->query_vars['suppress_filters'] ) oder verwenden Sie $query->get('suppress_filters') wie diese false == $query->get('suppress_filters').

Ungetestet (minimal getestet), aber ich bin der Meinung, dass Sie mit beiden die gleichen Ergebnisse erzielen sollten, abzüglich der Benachrichtigung.

2
s_ha_dum

Klingt so, als wäre $query->query_vars['suppress_filters'] nicht gesetzt. Versuche dies:

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

Ich habe eine Überprüfung hinzugefügt, um sicherzustellen, dass $query->query_vars['suppress_filters'] tatsächlich festgelegt ist, bevor Sie überprüfen, ob es sich um false handelt. (Außerdem habe ich die if()-Anweisung zum leichteren Lesen getrennt. (Ich glaube, ich habe den gesamten ( und den ) korrekt abgeglichen.)

0
Pat J