启用?year=2016(未来)到Wordpress查询字符串以列出未来几年的帖子
我已经编写了一个事件插件,它可以显示将来设置的帖子 我正在生成链接,当点击链接时,它们会指向按月份和年份分组的帖子列表。 这是permalink的一个示例,此查询字符串显示2015年5月的所有帖子 事件日志/?年份=2015-05 此查询字符串显示2015年6月的所有帖子 事件日志/?年份=2015-06 事件日志/?年份=2015-07显示2015年7月的所有帖子,以此类推 问题是,当我试图查询下一年的帖子时,它会导致404页。似乎有某种安全功能可以防止人们查询未来几年的帖子列表。这很奇怪,因为明年的个人帖子都很好。例如 此查询字符串工作正常。事件/帖子名称-of-2016-post/ 是否有解决此url限制的方法启用?year=2016(未来)到Wordpress查询字符串以列出未来几年的帖子,wordpress,Wordpress,我已经编写了一个事件插件,它可以显示将来设置的帖子 我正在生成链接,当点击链接时,它们会指向按月份和年份分组的帖子列表。 这是permalink的一个示例,此查询字符串显示2015年5月的所有帖子 事件日志/?年份=2015-05 此查询字符串显示2015年6月的所有帖子 事件日志/?年份=2015-06 事件日志/?年份=2015-07显示2015年7月的所有帖子,以此类推 问题是,当我试图查询下一年的帖子时,它会导致404页。似乎有某种安全功能可以防止人们查询未来几年的帖子列表。这很奇怪,因
$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”。我可能必须按照您的方式执行,但我想知道为什么它会在查询字符串中阻止未来几年,而不是今年的未来几个月。我怀疑这是出于我所述的原因-您不能在将来有一个帖子创建年份,这样可以防止出现错误。任何月份都有效。我想知道是否有办法禁用此功能,以防止在帖子列表中禁用下一年的帖子,这必须是可能的,因为单个帖子本身是完全可见的,即使它们的日期在未来几年。。。