2017-01-26 80 views
1

我想驗證並更改來自wordpress搜索表單的輸入值。使用php驗證/更改輸入值

<?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> 

我用這個代碼來更改值,但它不是工作;-(

這應該刪除所有字符和測試之後,但它不是。

我這麼想嗎?

最後,我想驗證輸入值,當它包含特定的單詞時,它需要更改爲乾淨的搜索字符串。

回答

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()); ?>" 
+0

我想這:'$查詢= SUBSTR ($ query,0,strpos($ query,「&catalogRefIds =」));'但我得到一個錯誤'解析錯誤:語法錯誤,意外'$查詢'(T_VARIABLE),期望函數(T_FUNCTION)在/ home/voordnl /public_html/wp-includes/class-wp-query.php on line 467' – Maarten

+0

@Maarten查詢是對象的外觀: https://codex.wordpress.org/Class_Reference/WP_Query –