是否可以根据自定义字段对帖子进行排序?

时间:2017-04-19 作者:Max

我有一个名为“value\\u date”的自定义字段,其中添加日期,例如yyyy/mm/dd

这个想法是把即将到来的日期排在循环的第一位,有可能吗?

我使用了自定义post taxonomy事件日期的模板。php,这是函数中的代码,它不起作用。

Functions.php

add_action(\'pre_get_posts\',\'search_filter\');
function search_filter($query){
    if ( !is_admin() && $query->
is_tax( \'event\', \'date\' ) ) {
        $today = date( \'Y-m-d\' );
        $query->set(\'post_status\', \'publish\');
        $query->set(\'meta_value\', $today);
        $query->set(\'meta_key\', \'value_date\');
        $query->set(\'orderby\', \'meta_value_num\');
        $query->set(\'order\', \'ASC\');
    }
}

1 个回复
SO网友:Punitkumar Patel

是的,您可以调用操作“pre\\u get\\u posts”。

add_action(\'pre_get_posts\',\'search_filter\');
您可以添加参数:

$args = array(
  \'post_status\'       => \'publish\',
  \'posts_per_page\'    => 6,
  \'paged\'             => $paged,
  \'meta_key\'          => \'event_date\',
  \'orderby\'           => \'meta_value_num\',
  \'order\'             => \'ASC\'
);
您可以使用上述参数,例如:

function search_filter($query){
    if ( !is_admin() && $query->is_main_query() ) {
        $query->set(\'post_status\', \'publish\');
        $query->set(\'meta_key\', \'event_date\');
        $query->set(\'orderby\', \'meta_value_num\');
        $query->set(\'order\', \'ASC\');
    }
}

相关推荐

Custom loop not working

因此,我创建了一个自定义循环,在该循环中,我的自定义帖子类型的帖子将出现,并且在其中,我向meta“layout\\u meta\\u box”声明了值“synosis”。自定义帖子类型正在工作,但元框值不工作。我做错了什么?<?php /* Template Name: Archief Synopsis Template Post Type: algemeen */ get_header(); $args = array( \'pos