我使用ADD_FILTER有什么问题

时间:2011-04-17 作者:insightful

我想用我的自定义搜索覆盖wordpress默认搜索,但是当我在插件文件中放入以下代码时,它不会出现替换默认搜索框(无错误,无任何内容)以及当我将代码放入函数中时。php它工作正常,并替换了默认的搜索框。

有人能告诉我为什么插件文件中不起作用吗?谢谢

function DynamiteSearch($form) {
    $form = \'<form method="get" id="searchform" action="\' . get_option(\'home\') . \'/" >
    <div><label class="hidden" for="s">\' . __(\'Search for:\') . \'</label>
    <input type="text" value="\' . attribute_escape(apply_filters(\'the_search_query\', get_search_query())) . \'" name="s" id="s" />
    <input type="submit" id="searchsubmit" value="\'.attribute_escape(__(\'Search\')).\'" />
    </div>
    </form>\';
    return $form;
}

add_filter(\'get_search_form\', \'DynamiteSearch\');

2 个回复
SO网友:Rutwick Gangurde

我清理了您的代码,并放置了安装它所需的所有头信息。你的插件工作正常,我测试过了!

/*
Author: whoever
Plugin Name: Some Name
Plugin URI: 
Text Domain: some-domain
Version: 1.0
*/

function DynamiteSearch($form) 
{
    $form = "<form method = \'get\' id = \'searchform\' action = \' ".site_url()." \' >";
    $form .= "<div><label class = \'hidden\' for=\'s\'>". __("Search for: ") . "</label>";
    $form .= "<input type = \'text\' value=\' ". attribute_escape(apply_filters(\'the_search_query\', get_search_query())) ." \' name=\'s\' id=\'s\' />";
    $form .= "<input type = \'submit\' id=\'searchsubmit\' value=\' ".attribute_escape(__(\'Look for it\'))." \' />";
    $form .= "</div>";
    $form .= "</form>";

    return $form;
}

add_filter(\'get_search_form\', \'DynamiteSearch\');
尝试更改“提交”按钮文本以查看其是否有效。如果对你有用,请告诉我。

谢谢Rutwick

SO网友:t31os

如果您发布的代码实际上是您放入文件中的所有代码,这就是原因。

首先,您需要在文件顶部添加插件头,例如。。

/*
    Author: whoever
    Description: whatever
    Domain Path: /lang
    Plugin Name: Some Name
    Plugin URI: 
    Text Domain: some-domain
    Version: 1.0
*/
其次,您需要从插件管理页面(admin>plugins)激活插件,但只有当插件有一个有效的标题时,它才会出现在该列表中,就像上面发布的一样。

如果这两件事都不是问题,请发布更多的代码(一定会有更多,因为您缺少发布的插件标题)。。

希望有帮助:)

结束

相关推荐