Tag Archives: wordpress

wordpress用户注册成功后的页面跳转

并非完美解决,大概就这么个意思,凑合看吧。 function register_success_login_redirect($errors) { $pos = strpos($errors,'Registration complete'); if($pos === false) return $errors; else return $errors.'<script type="text/javascript">window.location.href = "/?p=251";</script>'; } add_filter('login_messages', 'register_success_login_redirect');

MU搬家以及和WP合并

因为365memo.com域名到期,又不想花钱了,决定把mu整站搬到utmemory.com,并且把utmemory.com原来的wp直接并到mu里面作为主站。 准备数据 首先是mu改域名,如果在数据库里一个一个改,难倒是不难,就是太烦。几个外国哥们儿挺聪明的,提供方法如下,用mysql dump(可以用phpmyadmin或者其他客户端)把sql弄下来,然后查找旧域名,换成新的域名。在另一边的server建数据库,导入数据。 然后倒入wp数据。故技重施,直接备份wp_comments,wp_links,wp_postmeta,wp_posts,wp_terms,wp_term_relationships,wp_term_taxonomy这7个table,把wp_替换成wp_1_。然后把mu数据库里的wp_1_开头的这7个table删除。运行替换过的sql,重新生成这7个表。 到这里数据初步准备完毕。 准备文件 建一个index.html告知网站正在维护。 把所有wp的文件copy到备份目录,然后释放mu的文件,域名/index.php开始安装,没啥花头。 在cpanel里面建*的subdomain,不然没法做二级域名的mu。 把原站的wp-content目录,和wp的wp-content目录都搬到mu的wp-content,ok,准备工作基本就绪。 登陆后台启动正确的插件,theme,widget等,新站基本完成。 最后是把mu主站blog的作者id改成相对应的mu userid。如果mu里没有这个用户,先新建一个,然后用update wp_1_posts set post_author=x,如果多作者跟where。 测试一下新站是否全部正常,不正常的google。正常就删掉index.html。 做重定向 在原先域名的根目录下建.htaccess,内容如下 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^(.*)\.old\.com [nc] RewriteRule ^(.*)$ http://%1.new.com/$1 [R=301,L] </IfModule> 注意%和$的位置,这里卡了挺久。刚开始最好不要加R=301,万一写错了浏览器cache有些烦,成功了再加301

关于模板路径

更新了wp和PageNavi后,我突然PageNavi的样式丢失了,花了几分钟看了下代码,作者是这样写的: function pagenavi_stylesheets() { if(@file_exists(TEMPLATEPATH.'/pagenavi-css.css')) { wp_enqueue_style('wp-pagenavi', get_stylesheet_directory_uri().'/pagenavi-css.css', false, '2.50', 'all'); } else { wp_enqueue_style('wp-pagenavi', plugins_url('wp-pagenavi/pagenavi-css.css'), false, '2.50', 'all'); } } TEMPLATEPATH指向了父模板的路径,但是get_stylesheet_directory_uri给的是子模板的链接。查了一下api,理了一下思路,应该先查看子目录下pagenavi-css.css,再看父模板下pagenavi-css.css,最后采用默认css,改代码如下: function pagenavi_stylesheets() { if(@file_exists(STYLESHEETPATH.'/pagenavi-css.css')) { wp_enqueue_style('wp-pagenavi', get_stylesheet_directory_uri().'/pagenavi-css.css', false, '2.50', 'all'); } else if(@file_exists(TEMPLATEPATH.'/pagenavi-css.css')) { wp_enqueue_style('wp-pagenavi', get_template_directory_uri().'/pagenavi-css.css', false, '2.50', 'all'); } else { wp_enqueue_style('wp-pagenavi', plugins_url('wp-pagenavi/pagenavi-css.css'), false, '2.50', 'all'); } } 总结: STYLESHEETPATH 和 get_stylesheet_directory_uri […]

定时备份mu数据库

一直没有找到好用的mu数据库备份插件,mu官方给的方法是这样滴: DATE=`date | tr " " _` echo $DATE mysqldump wordpress --add-drop-table -h localhost -u wpdbuser -pyourpasswd | gzip > db.$DATE.gz tar cvfz code.$DATE.gz 不过这只有备份打包,没有发送到email得功能,最近我找到了这个:AutoMySQLBackup,一个shellscript,可以自动备份数据库,并发送到email,和WP-DB-Backup的功能一样了哦,不过怎样能定时运行嗫?在询问了site5客服后,得到的回复是——建个cron job。 先根据提示修改automysqlbackup.sh.2.5,写入数据库信息,上传到服务器合适的目录,例如:~/etc 修改权限:chmod +x ~/etc/automysqlbackup.sh运行一下看看有没有收到备份email,如果有问题,继续修改automysqlbackup.sh ssh到服务器,输入crontab -e开始编辑,0 2 * * * ~/etc/automysqlbackup.sh(每天晚上2点运行),保存,退出,第二天看看有没有收到email。

WP空白首页历险记

今天又碰到个郁闷错误,瞳妈紧张兮兮的在QQ上说:花蕾怎么连不上了?一片白啊! 我一看,那叫一个白啊,⊙﹏⊙b汗!啥都没有啊。 想了想,先升级wp,后台一跑,挺好的呀。顺利升级,刷新,还是一片白。OK,我的theme写得有问题(用了都快1年的theme,怎么会突然有问题?不管了),启动default,还是一片白。那么??禁用插件,还是白的,Orz。 在大脑空白n分钟后到群里吼,然后开始google,关键词:“wordpress blank page”,结果有个外国哥们儿写,wp每个月都会定时不定时的来那么一次blank page,搞得和大姨妈一样,写了几个处理办法,我一看不外乎就是升级禁用插件,不过还写了看看php和mysql的版本。到cpanel里看了看,也没问题啊。那叫一个郁闷啊。 这时群里一群友说:“好像就是首页出了问题。”这算怎么回事儿啊。 决定全删掉,重装wp,顺手开了cpanel的文件管理(windows时代的,command line用不好),一个一个文件钩,突然我发现一个index.html,长度0,圈圈你个叉叉,谁放了个index.html在根目录?(曈妈,是你不?)删了,那丢失的主页又回来了,曈曈,优优,你们的笑脸真漂亮啊。 所以,同志们,有时候很多错误真的是很白。

[BUG]is_front_page

今又碰到一个wp的bug,也不知道说是wp的bug好还是我的数据库bug。 做顶部的“首页”链接的时候,我选择了is_front_page做为判断,不过失败了,换了is_home就好了,然后我就陷入了无限郁闷当中。看了一眼代码: function is_front_page () { // most likely case if ( 'posts' == get_option('show_on_front') && is_home() ) return true; elseif ( 'page' == get_option('show_on_front') && get_option('page_on_front') && is_page(get_option('page_on_front')) ) return true; else return false; } 咋用了get_option('show_on_front')嗫,跑到后台一看,在“Setting - Reading”里面的“front page displays”里一个都没有选。再看数据库,果然,没有show_on_front这一条。剩下就是提交bug,然后改代码。 迂回的解决方法:if(get_option('show_on_front')?is_front_page():is_home()){}

3种方式改变默认avatar图片

第一种,增加后台的默认avatar选项,然后到后台的Settings-Comment设置里面选中,保存。这个比较适合自己网站有固定的默认头像图片,换任何theme都用这一个图片的情况。代码: add_filter( 'avatar_defaults', 'fb_addgravatar' ); function fb_addgravatar( $avatar_defaults ) { $myavatar = '/avatar.jpg';//avatar地址 $avatar_defaults[$myavatar] = 'Avatar';//avatar名称 return $avatar_defaults; } 第二种,通过get_avatar这个函数,设置第三个参数为默认头像的地址。这个适合需要默认头像配合当前模板来获得最大视觉效果情况,完全忽略后台设置,超级适用于对MU统一的默认头像管理。代码: <?php echo get_avatar( $id_or_email, $size = '96', $default = '<path_to_url>' ); ?> 第三种,通过filterget_avatar来设置默认头像的地址。这个适合2.7中使用了默认的wp_list_comments(),或者作为子模板,不能直接调用get_avatar(),或者代码中多次使用了get_avatar(),想做统一修改的。代码: <?php add_filter('get_avatar', 'change_default_avatar', 1000, 4); function change_default_avatar($avatar, $id_or_email, $size, $default){ return str_replace(urlencode($default), urlencode("<path_to_url>"), $avatar); } ?>

Easy Picasa插件发布

发布地址:Easy Picasa 具体情况请看:Easy Picasa Picasa相关知识请看:Picasa外链及我的WP插件Easy Picasa

一共有3页,现在是第1页:[1]23