我修改了博客文章的WordPress主循環,使它根據提交的過濾器查詢和循環不同類型的帖子。如何在提交新查詢後刷新分頁鏈接?
在HTML開頭,有一個表單有幾個按鈕作爲選項,它類似於SA站點菜單:問題標籤用戶徽章未答覆。
當訪客點擊其中一個菜單按鈕時,會提交一個新的WP_Query。
下面的選項是帖子的循環,取決於提交的過濾器。
的PHP代碼基本上是一個標準的WordPress循環使用自定義功能:
$args= !empty($_POST['filter']) ? $_POST['filter']:null;
get_option_nav();
if(my_loop_have_posts(array('filter'=>$args))):
while my_loop_posts(): the_my_loop_post();
get_template_part('contents');
endwhile;
endif;
一切正常,除了只有默認的過濾器得到正確的分頁鏈接的罰款。提交新過濾器後,單擊分頁鏈接時,它將轉到默認過濾器的頁面。如何修改wordpress分頁鏈接以使其適用於其他過濾器?
下面是我用詢問參數代碼:
function get_args($args){
$defaults= array(
'order' => 'DESC',
'orderby' => 'modified',
'max_num_pages' =>5,
'paged' => get_paged(),
'post_status' => 'any',
'post_type' => array ('post', 'docs','topics'),
'posts_per_page' => 5,
)
$args = wp_parse_args ($args, $defaults);
extract ($args);
if(!empty($args['filter'])){
switch ($args['filter']){
case 'top_voted':
$args['post_type'] = 'docs';
$args['meta_key'] = '_vote_total';
$args['order'] = 'DESC';
$args['orderby']='meta_value_num';
break;
case 'unanswered_questions':
$args['post_type] = 'topics';
$args['blabla'] = 'blabla';
break;
default:
blabla;
break;
}
return $args;
}
和代碼分頁:
function get_paged() {
global $wp_query;
if (get_query_var('paged')) {
$paged = get_query_var('paged');
} elseif (! empty($wp_query->query['paged'])) {
$paged = $wp_query->query['paged'];
}
if (! empty($paged))
return (int) $paged;
return 1;
}
我已經完成了my_loop_have_posts()中的所有自定義查詢參數 – Jenny
您是否可以共享您用於自定義查詢的代碼(僅舉一例)? – Hernan
剛剛在我的問題中添加了$ args代碼。 – Jenny