WordPress使用分类ID作为新分类的别名
WordPress添加一个新的分类时,会使用分类的名称,经过一些过滤(比如空格,已经不适合在url中出现的特殊字符)作为分类的别名(slug),这个字段非常重要,因为他会出现在url中。在英文语境下这似乎没有什么问题,但是作为我们中文使用者,就很尴尬了,这会导致在url中经常会出现中文字符,看起来很别扭。其实稍作修改,就可以让wordpress使用分类的ID作为别名,这样在url中就不会出现中文了。
function set_category_slug($term_id, $tt_id, $taxonomy) {
if ($taxonomy === 'category') {
$term = get_term($term_id, $taxonomy);
$original_slug = $term->slug;
// 判断slug是否包含中文
if (!preg_match('/[\x{4e00}-\x{9fa5}]/u', $original_slug)) {
$new_slug = $term_id;
wp_update_term($term_id, $taxonomy, array('slug' => $new_slug));
}
}
}
add_action('create_term', 'set_category_slug', 10, 3);
将以上代码,添加至functions.php中,如果slug中包含中文名称,就会自动更改,使用分类的ID作为slug。
发表回复