启用?year=2016(未来)到Wordpress查询字符串以列出未来几年的帖子

启用?year=2016(未来)到Wordpress查询字符串以列出未来几年的帖子,wordpress,Wordpress,我已经编写了一个事件插件,它可以显示将来设置的帖子 我正在生成链接,当点击链接时,它们会指向按月份和年份分组的帖子列表。 这是permalink的一个示例,此查询字符串显示2015年5月的所有帖子 事件日志/?年份=2015-05 此查询字符串显示2015年6月的所有帖子 事件日志/?年份=2015-06 事件日志/?年份=2015-07显示2015年7月的所有帖子,以此类推 问题是,当我试图查询下一年的帖子时,它会导致404页。似乎有某种安全功能可以防止人们查询未来几年的帖子列表。这很奇怪,因

我已经编写了一个事件插件,它可以显示将来设置的帖子

我正在生成链接,当点击链接时,它们会指向按月份和年份分组的帖子列表。 这是permalink的一个示例,此查询字符串显示2015年5月的所有帖子 事件日志/?年份=2015-05 此查询字符串显示2015年6月的所有帖子

事件日志/?年份=2015-06 事件日志/?年份=2015-07显示2015年7月的所有帖子,以此类推

问题是,当我试图查询下一年的帖子时,它会导致404页。似乎有某种安全功能可以防止人们查询未来几年的帖子列表。这很奇怪,因为明年的个人帖子都很好。例如 此查询字符串工作正常。事件/帖子名称-of-2016-post/ 是否有解决此url限制的方法

       $loop = new WP_Query(
       array(
       'post_type' => 'future_events',
       'orderby' => 'date',
       'order' => 'ASC'
        //  'post_status' => 'future'
           )
         );



      if ($loop->have_posts()){
      $dates = array();  
      while ($loop->have_posts()) {
        # code...
      $loop->the_post();
      $meta = get_post_meta(get_the_id(),'');
      $object = get_post();
        //print_r($object) ;
      $dates[] = substr($object->post_date, 0 ,-12) ;

      }
      $vals = array_count_values($dates);
     //print_r($vals);
     foreach ($vals as $key => $value) {
     # code...
    $date = new DateTime('2000-01-01');
    $date = date_create($key.'-'.$value.'-00');
    $output2 .= '<a href="'. site_url().'/'.  
     get_query_var('pagename').'/?year='.$key .'">'. 
     date_format($date, 'M Y').' ('.$value .') </a><br> ' ; //.
     <br>';

      }
$loop=新的WP\u查询(
排列(
“post_type”=>“future_events”,
'orderby'=>'date',
“订单”=>“ASC”
//“post_状态”=>“未来”
)
);
如果($loop->have_posts()){
$dates=array();
而($loop->have_posts()){
#代码。。。
$loop->the_post();
$meta=get_post_meta(get_id(),“”);
$object=get_post();
//打印(对象);
$dates[]=substr($object->post_date,0,-12);
}
$VAL=数组\计数\值($dates);
//打印(VAL);
foreach($VAL作为$key=>$value){
#代码。。。
$date=新的日期时间('2000-01-01');
$date=date_create($key.'-'.$value.'-00');
$output2.='
';//。
",; }
在WordPress中,帖子的日期是在创建帖子后设置的。因此,以后不能创建帖子

您可以通过自定义meta值(即实际事件日期)并基于meta_键/meta_值进行查询来完成所需的操作

$loop = new WP_Query(
   array(
   'post_type' => 'future_events',
   'orderby' => 'meta_value',
   'order' => 'ASC',
   'meta_key' => 'my_date',
   'meta_value' => $_GET['myyear']
    //  'post_status' => 'future'
       )
     );

我通过运行一个自定义数据库查询来显示未来的帖子,如果自定义帖子类型为“future_event”,则该查询会将所有未来帖子更新为“published”。我可能必须按照您的方式执行,但我想知道为什么它会在查询字符串中阻止未来几年,而不是今年的未来几个月。我怀疑这是出于我所述的原因-您不能在将来有一个帖子创建年份,这样可以防止出现错误。任何月份都有效。我想知道是否有办法禁用此功能,以防止在帖子列表中禁用下一年的帖子,这必须是可能的,因为单个帖子本身是完全可见的,即使它们的日期在未来几年。。。