WordPress debug

在国内服务器重新部署了wordpress后,搜索功能失效了。

Wordpress debug
致命错误

在默认情况下,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 );
Wordpress debug
log

格式化后如下。

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
搜索结果
分享