在国内服务器重新部署了wordpress后,搜索功能失效了。
在默认情况下,wordpress为了安全而关闭错误显示。
在wp-config.php中加入下列代码即可打开log记录并展示在网页上。
ini_set( 'log_errors','On' ); ini_set( 'display_errors','On' ); ini_set( 'error_reporting', E_ALL ); define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', true );
格式化后如下。
Notice: wp_deregister_script的调用方法不正确。脚本和样式应在wp_enqueue_scripts、admin_enqueue_scripts和login_enqueue_scripts钩子之后再加入加载队列(enqueue)或注册(register)。 请查阅调试WordPress来获取更多信息。 (这个消息是在3.3.0版本添加的。) in /var/www/html/wp-includes/functions.php on line 5167 Deprecated: Function create_function() is deprecated in /var/www/html/wp-content/themes/Variant/functions.php on line 181 Deprecated: Function create_function() is deprecated in /var/www/html/wp-content/themes/Variant/functions.php on line 182 Deprecated: Function create_function() is deprecated in /var/www/html/wp-content/themes/Variant/functions.php on line 183 Parse error: syntax error, unexpected 'new' (T_NEW) in /var/www/html/wp-content/themes/Variant/search.php on line 31
可见与搜索有关的错误在最后一行,是search.php中31行的new出现了问题。
此时可以在wordpress后台外观栏目下主题编辑器中对search.php进行编辑,相关代码如下:
$allsearch = &new WP_Query("s=$s&showposts=-1");
错误原因:new 语句创建的对象不能 以引用的方式赋值给变量。
此时将new前的&删去即可。
错误问题参考php官网文档。
解决完问题后,将wp-config.php中刚刚添加的内容删去即可。
测试一下搜索功能:
WordPress debug:等您坐沙发呢!