在类别特定页面上查询自定义分类被函数覆盖

时间:2016-03-08 作者:Joshua Read

BACKGROUND:

该网站是用于租赁物业的。所有者经常编辑属性的ID。为了解决这个问题,我必须创建一个自定义字段。他们需要归档页面上的顺序才能基于该自定义字段显示。

物业ID示例为1017 Seattle

在特定类别页面上,假期ID=2042,他们希望帖子的顺序按字母顺序排列,因此:

亚伯丁1092号,奥林匹亚1004号,西雅图1017号,城市名称实际上是定制的分类法,恰当地命名为“城市”

以下是“solve\\u order”函数的代码:

// Order the posts in archives page to DESC
add_action( \'pre_get_posts\', \'my_change_sort_order\'); 
function my_change_sort_order($query){
    if(is_archive()):
     //If you wanted it for the archive of a custom post type use: is_post_type_archive( $post_type )
       //Set the order ASC or DESC
       $query->set( \'order\', \'DESC\' );
       //Set the orderby
       // It was orderby ID, I changed to title so that it will display correctly for what Shannon was asking.
       $query->set( \'orderby\', \'meta_value_num name\' );
       $query->set( \'meta_key\', \'solve_order\' );
    endif;    
};
这是我的类别2042的代码。php页面

$args = array ( \'category\' => 2042, \'posts_per_page\' => 3, \'orderby\' => \'meta_value\', \'meta_key\' => \'vacation_order\', \'order\' => \'ASC\');
$myposts = get_posts( $args );
foreach( $myposts as $post ) :  setup_postdata($post);

THE PROBLEM

出于某种原因,该函数正在覆盖假期页面上我的帖子的排序顺序。它显示3篇文章,或者不管我写了多少,但它仍然显示基于“solve\\u order”meta\\u键和“vacation\\u order”meta\\u键的文章。当我从函数中删除函数时。php,它排序正确,但破坏了网站的其余部分。

之前提出的一个问题与此类似,但答案意外地基于没有彻底阅读该问题,他们没有看到它基于is\\U author(),并认为它基于is\\U archive()。

THE GOAL

使其自动化,并根据假期类别页面上的自定义分类“城市”按字母顺序显示。

通过以下功能进行常规归档页面排序:http://onlocation.com/category/00001-airport-terminal/

试图通过城市分类法进行排序的特定于类别的页面:http://onlocation.com/category/00543-vacation-rental/

1 个回复
SO网友:Andy Simpson

无法百分之百确定这是否可行,但您是否尝试过在$args内的单独数组中查询元键?例如。。。

$args = array(
    \'category\' => 2042,
    \'posts_per_page\' => 3,
    \'orderby\' => \'meta_value\',
    \'meta_query\' => array (
        array (
          \'key\' => \'vacation_order\',
          \'compare\' => \'IN\'
        )
    ) );        

$new_query = new WP_Query( $args );
$myposts = get_posts( $args );
foreach( $myposts as $post ) :  setup_postdata($post);
正如我所说,这只是一个想法,没有经过测试。

相关推荐