Php OnFocus javascript命令导致Wordpress崩溃

Php OnFocus javascript命令导致Wordpress崩溃,php,javascript,wordpress,onfocus,Php,Javascript,Wordpress,Onfocus,我正在调整Wordpress主题,并试图清除focus上的搜索字段,但是当我添加以下代码时,我得到了死亡的白色屏幕。实际的javascript函数似乎正在扼杀它,因为如果我用一个空的onfocus=”“命令运行这个PHP脚本,一切都很好 add_filter('wp_nav_menu_items','add_search_box', 10, 2); function add_search_box($items, $args) { if( $args->theme_locat

我正在调整Wordpress主题,并试图清除focus上的搜索字段,但是当我添加以下代码时,我得到了死亡的白色屏幕。实际的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;

}
add_filter('wp_导航菜单项','add_搜索框',10,2);
函数添加搜索框($items,$args){
如果($args->theme\u location=='primary'){
$items.='
  • “.”(“搜索”、“gonzo”)。&rarr;
  • '; 退回$items; }

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

    尝试转义onfocus中的引号:

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

    当php回显时,反斜杠将消失,脚本看起来就像您想要的一样。

    白色页面通常表示php致命错误或语法错误。
    在本例中,存在两个不同的错误:

    • 您尚未从
      if()
      语句中关闭
      {
    • 您的长文本字符串中嵌入了未正确转义的引号
    您也不知道字段中的默认文本应该是什么

    • 您正在使用
      value=“Search”
    • …但只有当它等于“默认文本”时,才清除它
    如果您修复了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 == \'Search\') { this.value = \'\'; }" name="s" id="fffff">
                <input type="submit" class="omc-header-search-button" id="searchsubmit" value="">
                </form>
                </li>';
        }
        return $items;
    }
    
    add_filter('wp_导航菜单项','add_搜索框',10,2);
    函数添加搜索框($items,$args){
    如果($args->theme\u location=='primary'){
    $items.='
  • “.”(“搜索”、“gonzo”)。&rarr;
  • '; } 退回$items; }
    这不会使它崩溃,但它不会清除焦点上的字段。@thebeat42,我刚刚将我的答案改为双引号。在渲染后,脚本在源代码中的外观如何?这就是它的渲染方式,它显示为红色:
    onfocus=“if(This.value=\'defaulttext\'){This.value=\';}
    works,试试这个。就是这样,我没有把“默认文本”改为“搜索”。谢谢你的帮助。好的,它不再导致致命错误,但字段焦点未清除。@Beat42不会从单引号更改为双引号-这会弄乱生成的HTML。单引号很好,只要你在PHP中转义它们。另外,你是否尝试将
    默认文本“
    更新为
    “搜索”
    ?检查我答案的(更新的)第二部分。@thebeat42查看我的更新答案(应该有效)代码。将此代码添加到php中进行调试。然后您将看到有关错误的更多信息:
    error\u reporting(E\u ALL^E\u NOTICE);ini\u set(“display\u errors”,1);