Php OnFocus javascript命令导致Wordpress崩溃
我正在调整Wordpress主题,并试图清除focus上的搜索字段,但是当我添加以下代码时,我得到了死亡的白色屏幕。实际的javascript函数似乎正在扼杀它,因为如果我用一个空的onfocus=”“命令运行这个PHP脚本,一切都很好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
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') .' →</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”
- …但只有当它等于“默认文本”时,才清除它
默认文本
更新为搜索
,它应该可以工作
像这样:
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') .' →</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);