Ignoriere / Überspringe den Standardwert bei orderby menu_order?

Gibt es eine Möglichkeit, alle Seiten abzufragen und sie nach menu_order aber die Seiten mit dem Standardwert 0 ignorieren?

Ich habe versucht, so etwas zu tun:

  $the_query = array( 'post_type' => self::POST_TYPE, 'posts_per_page' => $total, 'product_cat' => $product_category_name, 'orderby' => $orderby, 'suppress_filters' => '0' ); 

Oder muss ich einen Filter erstellen, um die WP_Query zu ändern? irgendwelche Ideen?

Prost

Solutions Collecting From Web of "Ignoriere / Überspringe den Standardwert bei orderby menu_order?"

Sie können das folgende (ungetestete) Mini-Plugin ausprobieren:

 < ?php /** * Plugin Name: Support for ignoring the default menu order in WP_Query * Description: Uses the _ignore_default_menu_order argument * Plugin URI: http://wordpress.stackexchange.com/a/193291/26350 */ add_filter( 'posts_where', function( $where, $q ) { global $wpdb; if( (bool) $q->get( '_ignore_default_menu_order' ) ) { $where .= "AND {$wpdb->posts}.menu_order <> 0"; } return $where; }, 10, 2 ); 

Dann sollten Sie das neue benutzerdefinierte Abfrageargument wie folgt verwenden können:

 $query = new WP_Query( [ '_ignore_default_menu_order' => true, ] ); 

Ignorieren von Beiträgen mit der Standardmenüreihenfolge ( 0 ).

Sie können dies auch so erweitern, dass jede Menüfolge als Benutzereingabe unterstützt wird.