使用Zend studio+WAMP来调试Wordpress后台的PHP程序的一些非常关键的信息(原创)
一、Zend studio代码格式化快捷键:选中代码,Ctrl+Shift+F( 注意,在英文输入发状态下使用!) 。
Zend studio实用快捷键 :
http://www.zendstudio.net/zend-studio-tutorial/zendstudio-shortcuts/
二、使用Dreamweaver格式化HTML代码:
http://www.ludou.org/use-dreamweaver-to-fomat-html-code.html
三、最好PHP开发工具Zend Studio 9.0.2的安装和使用,可以导入wordpress代码,形成工程。
原文出处:http://blog.csdn.net/reille/article/details/7420450
四、把远程服务器端的wordpress程序移到本地来调试。
由于在本地调试方便点,而且调试好了以后还要把代码上传回远程服务器端,所以最好数据库的配置跟远程服务器端的配置一样,下面的做法就是将本地的数据库配置跟远程服务器的一样。
步骤:
1. 在本地数据库中新建一个跟远程服务器端中与wp-config.php文件里面信息一样的数据库名字、用户名和密码。
2. 把远程的mysql数据库备份一份,然后复制到本地,还原到新建的数据库中。
3. 还原的时候可能会出现以下问题:
Fatal error: Maximum execution time of 30 seconds exceeded in
\wordpress\wp-includes\class-http.php on line 902
问题解决就很简单了,修改php.ini最大执行时间参数即可:
max_execution_time = 30(默认值) –> 改为180或者更大
memory_limit = 512M,最好也把mysql的内存也改一下,原来是(128MB)的,改成了512M之后快一点,就能在备份、还原大数据时候更加快速。当然这些值根据你的硬件来自由设置的,设置大点也没问题。
upload_max_filesize = 10M这个是控制mysql数据库导入文件大小,你需要还原的数据库很大的时候需要把这个值设置大点。
4. 把数据库里面的后缀为options的数据表里面的siteurl字段的数据改为http://localhost/(没改以前原来为你远程服务器自己所绑定的自己的域名,比如:www.XXX.com,改了之后就能正常访问本地的了)
5. 把远程的程序打包一份,然后复制到本地,并解压到apache的www目录(我这里是用wamp)。
6. 如果原来网站设置了.htaccess文件,那最好把这个文件改掉,比如你原来如果通过设置这个.htaccess文件来进行301重定向那就一定要把这个.htaccess文件里面的东西全部删除(删除前最好备份一份.htaccess文件),然后改为下面的再保存起来:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
7. 还有,注意留意还需更改wordpress后台常规选项那里的WordPress 地址(URL)和站点地址(URL)。
8. Apache安装的路径,在其根目录下“conf文件夹”中有一个文件叫“httpd.conf”,用记事本将它打开,按“ctrl+F”键,弹出查找窗口,输入“#LoadModule rewrite_module modules/mod_rewrite.so”,如果能找到的话,把前面的#删除,这个#号表示注释,也就是没有开启,我们去掉之后也就开启了“mod_rewrite”这一模块,如果找不到,再尝试输入“LoadModule rewrite_module modules/mod_rewrite.so”,看能否找到,如果能找到,说明这个模块已经开启。
先试试看能否正常打开,如果不能正常打开,继续在httpd.conf文档里面查找:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
将上面的改为下面的:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
再尝试一下能否正常打开,一般到这个时候就能正常打开了。
9. Warning: Creating default object from empty value in
\wordpress\wp-admin\includes\theme.php on line 23
弄好之后登陆主页进去没问题,但是进入wordpress后台之后就出现问题了:
首先找到对应文件对应行,改成:
if ( ! isset( $themes[$current_theme] ) ) {
delete_option( 'current_theme' );
$current_theme = get_current_theme();
}
$ct = new stdClass(); //原先有问题,添加本行即可
$ct->name = $current_theme;
10. Creating default object from empty value in.... \wp-includes\user.php on line 660
没登陆wordpress后台之前没什么问题,登陆之后会出现上面这个问题,搞了很久,终于找到了解决方案:
http://www.tiandiyoyo.com/2013/03/warning-creating-default-object-from-empty-value/
搜索资料得到原因是array里的object没有被初始化。解决办法是在这之前添加一行代码:
$blogs[ $blog_id ] = new stdClass();
首先找到对应文件对应行,改成:
if ( !is_multisite() ) {
$blog_id = get_current_blog_id();
$blogs = array();
$blogs[ $blog_id ] = new stdClass();//原先有问题,添加本行即可
$blogs[ $blog_id ]->userblog_id = $blog_id;
$blogs[ $blog_id ]->blogname = get_option('blogname');
$blogs[ $blog_id ]->domain = '';
$blogs[ $blog_id ]->path = '';
$blogs[ $blog_id ]->site_id = 1;
$blogs[ $blog_id ]->siteurl = get_option('siteurl');
return $blogs;
}
11. Warning: Creating default object from empty value in
D:\wamp\www\lyyy_wp_pj\wp-includes\class-wp-admin-bar.php on line 167
首先找到对应文件对应行,改成:
function add_node( $parent_id, &$menu, $child ) {
foreach( $menu as $id => $menu_item ) {
if ( $parent_id == $id ) {
+ $menu->{$parent_id}['children'] = (object) $menu->{$parent_id}['children'];//原先有问题,添加本行即可
$menu->{$parent_id}['children']->{$child['id']} = $child;
$child = null;
return true;
(以上三个问题解决方案:https://gist.github.com/eko/1073475)
12. Fatal error: Maximum execution time of 300 seconds exceeded in
D:\wamp\www\lyyy_wp_pj\wp-includes\shortcodes.php on line 176
max_execution_time
13. Warning: Creating default object from empty value in
/home/wordpress/www/wp-admin/includes/post.php on line 428
首先根据上面的路径找到出问题的代码行,然后添加下面这句:
$post = new StdClass();//原先有问题,添加本行即可
14. 还有个小问题就是链入链接那里的rss链接也要改一下,把链入进来的你的域名改成http://localhost。
15. 当然站点地址和wordpress地址也还是要改为http://localhost的,否则还是原来你的域名。
16. 无法打开更改过的固定连接的话,查看apache的rewrite_module模块是否开启,没开启的话要先打开,然后重新启动wamp服务。
刷新一遍之后全部正常了,即可开始编辑文件,改后之后直接上传到远程服务器端就行了,能够同步你的代码,方便而且快捷。
五、Zend studio调试wordpress源码:
http://stackoverflow.com/questions/6887746/zend-studio-with-wampserver //按这个做没问题建立好Zend studio工程之后直接导入wordpress工程文件进去或者直接复制到Zend studio工程的文件夹内再在Zend studio软件目录里面按F5刷新一遍即可。
http://www.yeetrack.com/?p=120
http://blog.sina.com.cn/s/blog_59a79e8b0100kpqs.html
六、手工升级wordpress的方法步骤:
http://jingyan.baidu.com/article/363872ec892d6c6e4ba16fc9.html
WordPress升级建议
http://www.wopus.org/wordpress-basic/basic-use/2130.html
七、亮友医药官网关键信息:
亮友医药官网的自定义固定连接:/%category%/%post_id%.html
八、Wordpress插件介绍:
1. BackUpWordPress这个插件既可以备份数据库,又可以备份网站上的文件,备份的内容都可以发到指定的Email地址,功能非常强大。
下载地址:http://wordpress.org/plugins/backupwordpress/,备份文件自动发送到gmail。
九、JavaScript学习:
在js(jquery)中获得文本框焦点和失去焦点的方法
详细出处参考:http://www.jb51.net/article/32423.htm
CSS分别设置Input样式(按input类型)
十、:
原文出处:http://www.cnblogs.com/icgg/articles/1647068.html
<input type="text" /> 文本框
<input type="password" /> 密码框
<input type="submit" /> 提交按钮
<input type="reset" /> 重置按钮
<input type="radio" /> 单选框
<input type="checkbox" /> 复选框
<input type="button" /> 普通按钮
<input type="file" /> 文件选择控件
<input type="hidden" /> 隐藏框
<input type="image" /> 图片按钮
十一、JS代码学习:
if(document.activeElement.id == this.id) 判断当前输入框(或者控件)是否获得焦点。