一直不想用wordpresss搭建博客,个人感觉有点慢,去年刚出的php7所以想尝试下,反正现在觉得还可以,
我说下安装过程中的坑。
第一弹
首先是在wordpress第一次安装的时候,提示未定义mysql_connection 函数,原因是php7已经放弃mysql_connection 函数连接数据库,替代方法是用mysqli_connection替代mysql_connection
注意php.ini是否打开mysqli的扩展
在wordpress的wp-includs/wp-db.php下替换即可。
第二弹
报错如下
``
Fatal error: Uncaught Error: Cannot access empty property in C:\MU\wp-includes\functions.php:2955
Stack trace:
#0 C:\MU\wp-includes\functions.php(2938): _wp_json_sanity_check(Object(stdClass), 511)
#1 C:\MU\wp-includes\functions.php(2900): _wp_json_sanity_check(Array, 512)
#2 C:\MU\wp-includes\class.wp-scripts.php(450): wp_json_encode(Array)
#3 C:\MU\wp-includes\functions.wp-scripts.php(191): WP_Scripts->localize('media-grid', '_wpMediaGridSet...', Array)
#4 C:\MU\wp-admin\upload.php(43): wp_localize_script('media-grid', '_wpMediaGridSet...', Array)
#5 {main}
thrown in C:\MU\wp-includes\functions.php on line 2955
``
找到wp_localize_script的定义如下
``
wp_localize_script( 'media-grid', '_wpMediaGridSettings', array(
'adminUrl' => parse_url( self_admin_url(), PHP_URL_PATH ),
'queryVars' => (object) $vars
) );
``
(object)在php7中出什么问题?我搜了下不知道这个能不能解释
php7的变量声明从堆里改到栈里,既然在栈里就不用再申请内存了吧,所以去掉就好
``
wp_localize_script( 'media-grid', '_wpMediaGridSettings', array(
'adminUrl' => parse_url( self_admin_url(), PHP_URL_PATH ),
'queryVars' => $vars
) );
``