Verwenden Sie in ‘category_name’ in ‘$ query-> set ();’?

Hier ist die function, die ich in der function.php meines Themas habe:

function better_editions( $query ) { // Categories act as 'Editions' on my site $get_edition = get_query_var( 'category_name' ); if( $get_edition !== '' ) { $edition = get_term_by( 'slug', $get_edition, 'category' ); if( $edition && !is_wp_error( $edition ) ) { $edition = $get_edition; } } if ( $query->is_category() && isset($edition) && $query->is_main_query() ) { $query->set( 'post_type', array( 'post' ) ); $query->set( 'category_name', $edition.', intl' ); } } add_action( 'pre_get_posts', 'better_editions' ); 

Ich benutze die function, um Beiträge anzuzeigen, die zur ‘International (intl)’ Kategorie gehören, unter allen Kategorien (in allen Kategoriearchiven, Kategorien, Posts usw.).

Wie ich gelernt habe, um mehrere Kategorien mit category_name in $query->set(); , das ist der einzige Weg, wenn ich nicht falsch liege:

 $query->set( 'category_name', 'category1, category2' ); 

Was ich mache, wie in der function weit oben gezeigt.

Das Problem ist, mit der function an Ort und Stelle, bekomme ich diesen Fehler:

Hinweis: Konvertierung von String zu String in /var/www/wp.dev/public/wp-admin/edit.php in Zeile 225

Der Fehler ist nur bei debug und nur auf der kategoriespezifischen Seite “Alle Posts” sichtbar . Beispielsweise…

 http://wp.dev/wp-admin/edit.php?category_name=intl 

… der obige Link listet alle Beiträge unter “International (intl)” in wp-admin auf.

Was mache ich falsch in der function? Wie behebe ich das?

HINWEIS: Ich möchte nicht !is_admin() weil die function auch auf wp-admin !is_admin() .

Solutions Collecting From Web of "Verwenden Sie in ‘category_name’ in ‘$ query-> set ();’?"

Ich kann das Problem nicht duplizieren, aber der Notice verweist auf diese Zeile :

 add_screen_option( 'per_page', array( 'label' => $title, 'default' => 20, 'option' => 'edit_' . $post_type . '_per_page' ) ); 

Und das lässt mich denken, dass Sie einen Post-Typ in Ihrer GET Zeichenfolge übergeben sollten.

 http://wp.dev/wp-admin/edit.php?post_type=post&category_name=intl 

Nur eine Vermutung, da ich das Problem nicht duplizieren kann. Wenn das dich nicht vorwärts bringt, werde ich die Antwort löschen 🙂