[英]Pagination on custom wp_query in WordPress takes to 404 error page
[英]404 error when passing certain filter with WP_Query, but not others
我有一個頁面,我使用new WP_Query
來顯示某個類別的帖子,用戶可以按發布年份過濾帖子。 這是我的查詢代碼:
if (isset($_GET['action'])){
$orderby = $_GET['orderby'];
$order = $_GET['order'];
$year = $_GET['year'];
}
$args = array(
'category_name' => 'films',
'orderby' => $orderby,
'order' => $order,
'year' => $year
);
$my_query = new WP_Query( $args );
我有一個表單,用戶可以選擇按年度過濾帖子:
<form class='post-filters'>
<select name="orderby">
<option value='date'>Order By Date</option>
<option value='title'>Order By Title</option>
</select>
<select name="order">
<option value='DESC'>Descending</option>
<option value='ASC'>Ascending</option>
</select>
<select name="year">
<option value=''>All</option>
<option value='2016'>2016</option>
<option value='2015'>2015</option>
</select>
<input type='submit' value='Filter!'>
</form>
一切正常,除非我嘗試選擇2016作為過濾器,我得到404錯誤。 那一年有帖子,如果我在WP_Query中對2016的值進行硬編碼,它就可以了。
什么想法可能會出錯?
一些變量名稱在WordPress中被“保留”。 $year
是一個不起作用的 - 與$month
, $day
等相同。將您的選擇名稱更改為year_filter
,然后:
if (isset($_GET['action'])){
$orderby = $_GET['orderby'];
$order = $_GET['order'];
$year_filter = $_GET['year_filter'];
}
$args = array(
'category_name' => 'films',
'orderby' => $orderby,
'order' => $order,
'year' => $year_filter
);
$my_query = new WP_Query( $args );
我多次把頭撞在桌子上,直到我一會兒想到這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.