让 Google Sitemaps Generator 可以忽略指定的日志分类

在之前使用 HemingwayEx 主题的时候我把一些只有半句或几句话的日志移动到了 asides 分类,而现在我不想让 Google Sitemaps Generator 插件生成 sitemap 的时候包括这些日志,也许只有我才会有这样奇怪的需求 :shock:

可 Google XML Sitemaps 只能忽略指定的日志或页面,而不能忽略整个分类,所以只能自己动手了。

1. 打开插件目录下的 sitemap-core.php 文件,找到:

$where.=" AND post_password='' ORDER BY post_modified DESC";
 
$sql .= $where;

修改成:

$where.=" AND post_password='' ORDER BY post_modified DESC";
$where = apply_filters('sitemap_exclude_categories', $where);
$sql .= $where;

Continue reading

WordPress 分页文章静态化的更优解决方案

之前用比较暴力的方式实现了分页文章的静态化,不过这样一来升级 WordPress 就不太方便了。厌烦了每次升级都要修改源文件,于是利用 WordPress 本身提供的接口实现了更好的解决方案。

/%year%/%monthnum%/%postname%.html这样的永久链接结构为例:

1. 打开主题目录下的functions.php文件,添加以下代码:

// 添加分页处理规则
function add_custom_post_rewrite_rules($rules) {
  $custom_rules = array(
    '([0-9]{4})/([0-9]{1,2})/([^/]+)-([0-9]+)\.html$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&name=$matches[3]&page=$matches[4]',
  );
  $rules = array_merge($custom_rules, $rules);
 
  return $rules;
}
add_filter('post_rewrite_rules', 'add_custom_post_rewrite_rules');
 
// 修改分页链接
function my_wp_link_pages($args = '') {
  $args .= ($args ? '&' : '') . 'echo=0';
  $links = wp_link_pages($args);
  $links = preg_replace_callback('|([0-9]{4}/[0-9]{1,2}/)([^/]+)(\.html)(/)([0-9]+)|', 'custom_page_link', $links);
 
  echo $links;
}
 
function custom_page_link($matches) {
  return $matches[1].$matches[2].'-'.$matches[5].$matches[3];
}

Continue reading

安装了 Ubuntu 8.10 导致网卡在 XP 下工作不正常

机器环境:南桥 Intel 82801GB ICH7 网卡 Atheros L2 Fast Ethernet 10/100 Base-T Controller

在中午休息的间隙,花了二十分钟的时间安装 Ubuntu 8.10,重新回到 XP 下后提示网络电缆没有插好。一开始还以为之前为了避免 Ubuntu 安装程序从网络源下载文件而拔网线的时候把网线插头弄坏了,还去找来网线测试器检查网线,经检查一切正常。猜想网卡是不是坏了,不过又一想没理由啊好端端的网卡怎会突然就坏了。

将网卡驱动卸载,重启后 XP 提示发现新硬件,但重新安装了网卡驱动后,一切照旧,依然提示网络电缆没有插好。在我几乎要判断网卡已经坏了的时候,老大凑了过来说拔掉机箱电源后再接上试试。依言照做,还真解决了问题,网卡恢复了正常,囧rz。

细细想来,除了安装 Ubuntu 没对系统做了什么改动,要出问题也只有在这里了。果然,在我试着进入 Ubuntu 系统后再回到 XP 下,系统又提示网络电缆没有插好,但在 Ubuntu 下网卡确工作正常。这个结果实在有些出乎我的意料。好在“断电恢复法”依然有效,不过我担心这样多折腾几次之后网卡是不是真的会挂了 :evil:

Updated at 2011.7.14
更新了XP下的网卡的驱动后,问题解决了。点击这里下载驱动