Wordpress 将文章归档到某一年,然后为较旧的文章创建一个通用归档选项卡

Wordpress 将文章归档到某一年,然后为较旧的文章创建一个通用归档选项卡,wordpress,Wordpress,我想将绘画内容类型按年归档到2010年,然后是其他较旧的内容类型由于wp\u get\u archives()中没有偏移参数,您只需更改顺序即可 wp_get_archives( array( 'post_type' => 'paintings', 'type' => 'yearly', 'limit' => 4, 'order' => 'ASC', ) ); 正如我所理解的那样,年份的字母顺序是降序的(默认值)。如果第一个存

我想将绘画内容类型按年归档到2010年,然后是其他较旧的内容类型由于
wp\u get\u archives()
中没有偏移参数,您只需更改顺序即可

 wp_get_archives( array( 
    'post_type' => 'paintings', 
    'type' => 'yearly', 
    'limit' => 4,
    'order' => 'ASC', ) 
 );
正如我所理解的那样,年份的字母顺序是降序的(默认值)。如果第一个存档年份是2006年,则将
顺序
更改为
ASC
将显示:2006、2007、2008、2009

如果要反转这些结果,可以使用
format
echo
参数,并将逻辑应用于显示2009、2008、2007和2006。但这是另一个问题

更新(来自评论)

您可以使用pre_get_post操作来更改查询

add_action('pre_get_posts', 'so_41494855');

function so_41494855($query){

   if(is_post_type_archive('paintings') && $query->is_main_query()){
       $before = '2009-12-31';
       $after = '2006-01-01';
       $date_query = array(
           'before' => $before,
           'after' => $after
       );
       $query->set('date_query', $date_query);
       $query->set('posts_per_page', '15');
   }
   return $query;
}
您将找到WP_查询的所有详细信息和日期参数,以适应您的查询

您需要使用一个特殊的存档链接来检测此存档页面。我建议您了解add_query_var(),并将and添加到可用于WP_query的公共查询变量中

最后的结果是:

if(is_post_type_archive('paintings') && get_query_var('show-paintings') == 'older' && $query->is_main_query()){}
考虑这一点的另一种方法是克隆自定义的post类型,以区分新旧绘画。检测存档页面并更改查询的条件将变为
是\u post\u type\u archive('older-painting')


希望它有用

谢谢你,贝诺蒂。但是我想把20092008年等的数据归为一组,没有区别。这里会有一个标题链接“Older Archive”,它列出了当年的每篇文章。好吧,我不太明白,我想你只需要每年的列表页面链接,所以我想你可以使用pre_get_posts操作在一个特殊的归档页面中列出所有带有日期查询的文章。谢谢,Benoti。您介意详细说明带有日期查询的pre_get_posts选项吗?那太好了。是的,几分钟后我会的
if(is_post_type_archive('paintings') && get_query_var('show-paintings') == 'older' && $query->is_main_query()){}