wordpress
  • add-filter
  • 2012-02-24 80 views 1 likes 
    1

    我想取代我自己的搜索表單。WordPress的,add_filter,get_search_form

    一個例子插件:

    <?php 
    /* 
    Author: whatever 
    Plugin Name: Some Name 
    Plugin URI: 
    Text Domain: some-domain 
    Version: 1.0 
    */ 
    
    function custom_search($form) 
    { 
    $form = "testing<form method = 'get' id = 'searchform' action = ' ".site_url()." ' >"; 
    $form .= "<div><label class = 'hidden' for='s'>". __("Search for: ") . "</label>"; 
    $form .= "<input type = 'text' value=' ". esc_attr(apply_filters('the_search_query', get_search_query())) ." ' name='s' id='s' />"; 
    $form .= "<input type = 'submit' id='searchsubmit' value=' ".esc_attr(__('Look for it'))." ' />"; 
    $form .= "</div>"; 
    $form .= "</form>"; 
    
    return $form; 
    } 
    
    add_filter('get_search_form', 'custom_search'); 
    

    結果,不能正常工作。

    我使用最新的Wordpress與二十十一主題。

    我在這裏錯過了什麼?!?

    編輯:看來,如果主題有searchform.php文件,該過濾器將被該文件覆蓋。所以基本上過濾只有在主題沒有searchform.php時纔有效。現在,這只是愚蠢的..

    回答

    1

    這是一個衆所周知的WordPress錯誤的結果get_search_form($echo)函數將忽略$ echo參數,並總是回顯jf你有一個在你的主題的searchform.php模板文件。

    這是一個廢話的功能,有一個2歲的trac ticket。直到他們解決它,有幾個解決方法: 1.使用file_get_contents() - 但不會解析PHP 2.使用自定義函數與get_searchform掛鉤(不是實際功能) 3.或使用簡單的輸出緩衝捕獲輸出作爲變量;

    This page has examples for all 3 methods

    +0

    「此頁」是你自己的網頁,並且你需要披露這一事實,當你永遠張貼一個鏈接到自己的網頁/網站/產品。 – 2012-10-06 01:30:40

    相關問題