1

我正在调整一个 Wordpress 主题,并试图清除焦点上的搜索字段,但是当我添加以下代码时,我得到了白屏死机。实际的 javascript 函数似乎是杀死它的原因,因为如果我用一个空的 onfocus="" 命令运行这个 PHP 脚本,一切都很好。

    add_filter('wp_nav_menu_items','add_search_box', 10, 2);
    function add_search_box($items, $args) {
if( $args->theme_location == 'primary' ) {
    $items .= '<li id="omc-header-search">              
                    <span id="omc-search-overlay">'. __('Search', 'gonzo') .' &rarr;</span>
                    <form method="get" id="desktop-search" class="omc-search-form" action="'.get_bloginfo('url').'/">
                        <input type="text" class="omc-header-search-input-box" value="Search" onfocus="if(this.value == 'Default text') { this.value = ''; }" name="s" id="fffff">
                        <input type="submit" class="omc-header-search-button" id="searchsubmit" value="">
                    </form>
                </li>';

return $items;

}

我不知道为什么这会导致整个事情崩溃。

4

2 回答 2

0

尝试转义onfocus:

onfocus="if(this.value == \'Default text\') { this.value = \'\'; }"

当被 php 回显时,反斜杠将消失,脚本将看起来像你想要的那样。

于 2013-07-05T22:02:19.523 回答
0

白页通常表示 PHP 致命错误或语法错误。
在这种情况下,有几个不同的错误:

  • 你还没有关闭{你的if()声明
  • 您的一长串文本嵌入了'未正确转义的引号。

您也不一致该字段中的默认文本应该是什么。

  • 您将其设置"Search"value="Search"
  • ...但只有当它等于"Default text".

如果您修复 PHP 语法错误并更新Default textSearch,它应该可以工作。

像这样:

add_filter('wp_nav_menu_items','add_search_box', 10, 2);
function add_search_box($items, $args) {
    if( $args->theme_location == 'primary' ) {
        $items .= '<li id="omc-header-search">              
            <span id="omc-search-overlay">'. __('Search', 'gonzo') .' &rarr;</span>
            <form method="get" id="desktop-search" class="omc-search-form" action="'.get_bloginfo('url').'/">
            <input type="text" class="omc-header-search-input-box" value="Search" onfocus="if(this.value == \'Search\') { this.value = \'\'; }" name="s" id="fffff">
            <input type="submit" class="omc-header-search-button" id="searchsubmit" value="">
            </form>
            </li>';
    }
    return $items;
}
于 2013-07-05T22:04:06.160 回答