用php验证/更改输入值

时间:2017-01-26 18:33:53

标签: php wordpress

我想验证并更改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 &hellip;', '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之后和之后的所有字符但不是。

我错过了什么吗?

最后我要验证输入值,当它包含特定单词时,需要将其更改为干净的搜索字符串。

1 个答案:

答案 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()); ?>"