寻找新的视角,
我有一个用于我的CPT及其分类的自定义存档。
该页面有一个输入搜索表单来过滤CPT的帖子,也有下拉列表来按术语过滤。
问题是,在页面加载时,当循环实例化WP\\u查询参数时,会被get_query_vars
.
例如posts_per_page
设置为2。然而query_vars
劫持args并将其更改为12(出于某种原因,未在网站上的任何其他地方声明)
逻辑如下。
$q = get_query_var( \'q\' );
$args = array(
\'post_type\' => $post_type,
\'post_status\' => \'publish\',
\'orderby\' => \'post_date\',
\'order\' => \'DESC\',
\'paged\' => $paged,
\'posts_per_page\' => $posts_per_page, // tried 2
\'tax_query\' => $tax_query,
\'s\' => $q
);
$wp_query = new WP_Query( $args );
表单-请参阅
q
作为值
<form id="filter-form" role="search" method="get" class="" action="<?php the_permalink(); ?>">
<!-- Query -->
<label>
<span class="screen-reader-text"><?php echo _x( \'Enter Keyword\', \'label\' )?></span>
<input type="search" class="search-field"
placeholder="Keywords"
value="<?= $q ?>"
name="q"
title="<?php echo esc_attr_x( \'Enter Keyword\', \'label\' ) ?>"/>
</label>
etc
过滤器已注册并挂接在函数中。php符合codex
function add_query_vars_filter( $vars ){
$vars[] = "q";
return $vars;
}
add_filter( \'query_vars\', \'add_query_vars_filter\' );