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。

发布日期:2023-06-29 浏览次数:353

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注