我正在将表单用于存档页面,以便用户可以指定他们想要查看的帖子以及查看方式。我有它的设置,所以他们可以选择升序或降序,每页帖子等,使用$\\u GET在我的表单中。但是,我还设置了表格,以按年/月设置显示帖子:
<select name="monthnum">
<option value="null">Month</option>
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
等所有月份和相同年份
然后,我的查询参数如下所示:
$paged = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;
$custom_args = array(
\'post_type\' => \'post\',
\'posts_per_page\' => $_GET["posts-per-page"],
\'paged\' => $paged,
\'order\' => $_GET["order"],
"orderby" => "date",
"year" => $_GET["year"],
"monthnum" => $_GET["monthnum"]
);
$custom_query = new WP_Query( $custom_args );
到目前为止,我添加了几个帖子来测试这些内容,所以它们都是2015年8月发布的,如果我通过$\\u GET设置这些内容,它会显示得很好。但是,如果我尝试在1月或8月以外的任何其他月份发布,我的归档页面会被重定向到带有循环(即索引)的页面。在我的例子中是php,它显示“没有帖子…”而它应该保持在同一页上,并显示“无帖子…”在上面。我已经安排好了。无需发布其余代码,因为我已经知道重定向会在创建新的WP\\U查询后立即发生。什么可能导致此问题?同样,$\\u GET[“每页帖子”]和$\\u GET[“订单”]都能按预期工作。
最合适的回答,由SO网友:webtoure 整理而成
通过使用GET
变量,例如year
或monthnum
您有效地缩短了URL重写的时间(如果您使用的是相当长的永久链接)。这样,您就可以查询WP_Query
例子first 并有效地使你的完全无用(好吧,你确实改变了posts_per_page
属性,就是这样)。无论如何,关键是有一个基类WP
当主WP_Query
实例不返回post(实际情况就是这样),并且404
模板被调用(如果您的主题有)或者如果它缺少index
使用了模板(您的问题似乎证实了这一点)。
现在,最快的修复方法是基本上重命名GET
变量到q_year
或q_monthnum
例如