是否按标题和自定义字段值对帖子进行排序?

时间:2018-07-09 作者:RobbTe

我想按标题排序帖子,但总是先显示特色帖子。我有下面的代码按标题排序帖子。现在,我希望总是首先显示具有值为“1”的元字段“wiloke\\u listgo\\u toggle\\u highlight”的帖子。我如何才能做到这一点?

/* Order Posts Alphabetically */
function prefix_modify_query_order( $query ) {
  if ( is_main_query() ) {

    $args =  array( \'title\' => \'ASC\' );

    $query->set( \'orderby\', $args );
  }
}
add_action( \'pre_get_posts\', \'prefix_modify_query_order\' );

1 个回复
SO网友:Patrice Poliquin

我帮助您解决问题的第一次尝试是这样做:

/* Order Posts Alphabetically */
function prefix_modify_query_order( $query ) {
  if ( is_main_query() ) {

    $query->set(
        \'meta_query\', array(
            \'relation\' => \'AND\',
            \'query_highlight\' => array(
                \'key\'   => \'wiloke_listgo_toggle_highlight\',
                \'value\' => \'1\',
                \'compare\' => \'=\'
            )
        )
    );

    $query->set(
        \'orderby\', array( 
            \'title\' => \'ASC\',
            \'query_highlight\'   => \'ASC\',
        )
    );
  }
}
add_action( \'pre_get_posts\', \'prefix_modify_query_order\' );
资料来源:https://codex.wordpress.org/Class_Reference/WP_Meta_Query#Usage

代码应该开始按标题ASC排序帖子,还应该使用值为1的自定义键进行帖子排序。

注意:没有测试它,所以我建议你评论一下,如果他们有任何错误。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post