我想验证并更改wordpress搜索表单中的输入值。
<?php $unique_id = esc_attr( uniqid( 'search-form-' ) ); ?>
<form role="search" method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>">
<label for="<?php echo $unique_id; ?>">
<span class="screen-reader-text"><?php echo _x( 'Search for:', 'label', 'twentyseventeen' ); ?></span>
</label>
<input type="search" id="<?php echo $unique_id; ?>" class="search-field" placeholder="<?php echo esc_attr_x( 'Search …', 'placeholder', 'twentyseventeen' ); ?>" value="<?php echo get_search_query(); ?>" name="s" />
<button type="submit" class="search-submit">
<?php echo twentyseventeen_get_svg( array( 'icon' => 'search' ) ); ?><span class="screen-reader-text"><?php echo _x( 'Search', 'submit button', 'twentyseventeen' ); ?></span></button>
</form>
我用这段代码来改变价值,但它不起作用; - (
这应该删除TEST之后和之后的所有字符但不是。
我错过了什么吗?
最后我要验证输入值,当它包含特定单词时,需要将其更改为干净的搜索字符串。
答案 0 :(得分:0)
你曾经尝试过什么?它看起来像Wordpress的正常搜索形式。
要修改查询,必须挂钩到pre_get_posts函数:
function your_filter($query) {
if (!$query->is_search) {
return $query;
}
// your code here
return $query;
}
//hook
add_filter('pre_get_posts','your_filter');
要逃避搜索值,您可以执行以下操作:
value="<?php echo doWhatEverYouWantFunction(get_search_query()); ?>"