J'ai un WP_Query personnalisé avec les arguments suivants
$args = array(
'post_type' => 'page',
'post_status' => 'publish',
'meta_key' => 'tile-home',
'meta_value' => 1,
'orderby' => 'menu_order',
'order' => 'ASC'
);
Cela sélectionne toutes les pages publiées dont le champ personnalisé tile-home est réglé sur 1 et les commande par l'attribut de page Order .
Comment puis-je éditer les arguments dans l'ordre (s'il vous plaît, pardonnez-moi le jeu de mots) pour exclure toutes les pages pour lesquelles menu_order est défini sur 0?
Vous pouvez définir une variable where
comme ceci si votre table est wp_posts
function _20170112( $where ){
$where = $where . ' AND wp_posts.menu_order > 0 ';
return $where;
}
Et mettez en sandwich votre requête avec ceci:
$args = array(
'post_type' => 'page',
'post_status' => 'publish',
'meta_key' => 'tile-home',
'meta_value' => 1,
'orderby' => 'menu_order',
'order' => 'ASC'
);
add_filter( 'posts_where', '_20170112' );
$q = new WP_Query($args);
remove_filter( 'posts_where', '_20170112' );