大猫の意淫筆記

Archive for codex

如何解决 SSH 导入/导出中文数据库乱码

Wednesday, December 9th, 2009

you-are-my-sunshine
哈哈,好久没有看日语都忘光了, 突然看到这张相片
俺那她 挖 瓦塔希 no 光芒 呆死
You are my sunshine~

MYSQL 数据库

导出数据库
mysqldump -u 数据库用户名 -p 数据库名 > db_ooxx.sql
导出数据库为db_ooxx.sql

导入数据库
mysql -u 数据库用户名 -p 数据库名 < db_ooxx.sql --default-character-set=utf8
把当前目录的 db_ooxx.sql 以 utf8 编码导入,当然你原来是gbk就改成gbk
中文blog经常遇到这个情况,一不小心就 ??? 满脑子都问号了

补充到:
SSH 入门教程(常用命令)

Google Apps 自定义域名邮局无法接受 WordPress 邮件

Sunday, December 6th, 2009

girl

如果你用 Google Apps 自定义域名邮箱, 很有可能你无法收到这个域名发给你的邮件

其实几个月前意识到这个问题了, 最近有人问起才发现是普遍问题,
也不仅仅是 wordpress 的邮件无法收到, 包括 drupal 等其他程序

原因很简单:

你的虚拟主机默认有邮件服务的, 即使你的MX已经指向了 Google Apps ,在本机发送邮件时, 那呆子一看, 哟,自己搞自己嘛,那就用本机的邮件服务去发,当然收不到了

解决方案:

(mt) Miao.in 进行 MediaTemple 合租的小盆友:
Plesk 面板

左侧菜单选择 Home
右侧单击要处理的域名
找一个叫 [ Mail ] 的图标
找第二个图标 叫 [ Switch Off ] 禁用掉本机的邮件服务
done

(mt) MediaTemple 自己玩 (gs) 套餐的小盆友:
mt 自家面板

进入管理面板
猛击一个叫 [ enable/disable mail ] 的按钮
会提示
Choose 'YES' if the MX record for the domain is pointed at your (mt) Grid-Service. Choose 'NO' if you are hosting your email on a different server.
选择 [ oh, NO ]

另一个很流行面板 cPanel:

寻找 Change MX Entry 就是类似邮件设置的
Always accept mail locall even if the primary mx does not point to this server
这个选项前面的勾勾去掉

或者有啥MX字样的,选择使用外部 啥啥的选项

还发现个灵异的问题
在web界面的 Google Apps 邮局里,设置了如果用户名不存在就转发给 例如 root@ooxx.me
但是用 root@ooxx.me 给不存在的地址例如 die@ooxx.me 发,就会收不到,虽然没啥大碍,就是想不通为啥这样子...

如何在wordpress the_category() 函数生成的分类列表里移除指定分类名链接

Thursday, November 19th, 2009

hack the_category()身为 WordPress 中文团队不活跃团员之一,俺觉得是时候做点啥了

比如出个 hack 介绍如何从
the_category() 函数生成的分类列表里移除指定的几个分类名的链接

做过模板的小盆友都知道,一篇文章可对应多个分类,在循环

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

里,可以用

< ?php the_category( $separator, $parents ); ?>

the_category('*') 输出当前文章的分类,并用菊花符 * 来分隔,比如

分类: < ?php the_category('*'); ?>

会输出

分类:wordpress*hack*category

在内部 Blog 搞皮肤的时候接到一条规则,要求有个分类叫重点的,然后又不要显示出来,仅仅用来作为 query_posts() (非常牛逼的函数,内容太多,有机会另起文章介绍强大的筛选功能) 获取文章的一个筛选条件

辣么,就需要 hack 一下 the_category() 了

很幸运 WordPress 提供了一个 ooxx 函数叫

< ?php add_filter( $tag, $function_to_add, $priority, $accepted_args ); ?>

根据 Smashing Theme 的一篇文章,把如下代码丢到 functions.php 最底部的 ?> 内即可实现

function the_category_filter($thelist,$separator=' ') {
	if(!defined('WP_ADMIN')) {
		//要移除的分类ID,这里是1和5
		$exclude = array(1,5);
		$exclude2 = array();
		foreach($exclude as $c) {
			$exclude2[] = get_cat_name($c);
		}
		$cats = explode($separator,$thelist);
		$newlist = array();
		foreach($cats as $cat) {
			$catname = trim(strip_tags($cat));
			if(!in_array($catname,$exclude2))
				$newlist[] = $cat;
		}
		return implode($separator,$newlist);
	} else {
		return $thelist;
	}
}
add_filter('the_category','the_category_filter', 10, 2);

解题思路就是先获取当前文章对应的分类 ID 数组,explode() 打散,和自定义的那个ID进行对比,如果有就移除,返回过滤后再 implode() 合并后的列表给 the_category() 输出到模板对应的前台页面