WP_QUERY排除订单为0的页面

时间:2017-01-12 作者:MKay

我有一个带有以下参数的自定义WP\\U查询

$args = array(
    \'post_type\' => \'page\',
    \'post_status\' => \'publish\',
    \'meta_key\' => \'tile-home\',
    \'meta_value\' => 1,
    \'orderby\' => \'menu_order\',
    \'order\' => \'ASC\'
);
选择具有自定义字段的所有已发布页面tile-home 设置为1 并按页面属性排序Order.

我如何按顺序编辑参数(请原谅我的双关语)以排除所有将menu\\u order设置为0的页面?

1 个回复
最合适的回答,由SO网友:prosti 整理而成

您可以定义自定义where 如果你的桌子wp_posts

function _20170112( $where ){    

  $where = $where . \' AND wp_posts.menu_order > 0 \';             
  return $where;
}
并将您的查询包含在以下内容中:

$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\' );

相关推荐

ExcludeCat函数颠倒博客帖子的顺序

我正在使用下面的代码从主页上的查询中删除类别#5377。然而,出于某种原因,此代码也颠倒了博客帖子的顺序。如何将此代码更改为仅删除类别#5377并保持相同的帖子顺序?function excludeCat($query) { if ( $query->is_home ) { $query->set(\'cat\', \'-5377\'); } return $query; } add_filter(\'pr