在之前使用 HemingwayEx 主题的时候我把一些只有半句或几句话的日志移动到了 asides 分类,而现在我不想让 Google Sitemaps Generator 插件生成 sitemap 的时候包括这些日志,也许只有我才会有这样奇怪的需求 😯 。
可 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 本身提供的接口实现了更好的解决方案。
以/%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…
好久没写博客了,出来冒个泡。最近状态比较低迷,半死不活中……