WordPress文章TAG标签用id显示

WordPress文章标签默认是中文,比如标签少的时候可以自己修改别名,比如拼音或者英文,但是有一个缺点就是同音词的时候不好区分,只能在别名后面加-1,-2这样的区分,比如手机,收集,首级,遇到同音词的时候就很不爽,展示方式看个人喜欢,除了中文展示会转码外,并没什么卵用,个人觉得用ID展示最好,比如Discuz的标签展示方式就最好。

之前在WordPress群里聊到这个问题的时候,ieoptimize优化插件作者说到这个问题,他是把这个功能放到了插件里面,博主们可以去下载这个插件试试,也许你能用上哦,代码也可以单独提取出来,代码如下,以下代码加在主题目录的 functions.php 中即可实现,添加代码后需要进入后台重新保存一下固定链接。

如果想以后更换主题的时候不用重新添加代码,请查看另一篇文章WordPress制作插件添加常用代码

/* WordPress文章标签以id方式展示
/* 文章来源:https://wpriji.com/m/20200484.html
/*--------------------------------------------------------------------------------------*/
add_action('generate_rewrite_rules','tag_rewrite_rules');
add_filter('term_link','tag_term_link',10,3);
add_action('query_vars', 'tag_query_vars');
function tag_rewrite_rules($wp_rewrite){
	$new_rules = array(
// 		'tag/(\d+)/feed/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?tag_id=$matches[1]&feed=$matches[2]',
// 		'tag/(\d+)/(feed|rdf|rss|rss2|atom)/?$' => 'index.php?tag_id=$matches[1]&feed=$matches[2]',
		'tag/(\d+)/embed/?$' => 'index.php?tag_id=$matches[1]&embed=true',
		'tag/(\d+)/page/(\d+)/?$' => 'index.php?tag_id=$matches[1]&paged=$matches[2]',
		'tag/(\d+)/?$' => 'index.php?tag_id=$matches[1]',
	);
	$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
 
function tag_term_link($link,$term,$taxonomy){
	if($taxonomy=='post_tag'){
		return home_url('/tag/'.$term->term_id.'/');  
	}
	return $link;
}
 
function tag_query_vars($public_query_vars){  
	$public_query_vars[] = 'tag_id';  
	return $public_query_vars;  
}

文章TAG标签用id展示后效果如下:

WordPress文章TAG标签用id显示

当然标签也是一个分类,具体是用拼音还是英文还是id看个人喜欢。
以下还有一种方案,就是默认ID展示,如果修改过别名,就以修改过的别名展示.

这段代码会首先使用 sanitize_title() 函数来获取标签名称的默认别名,然后将其与标签的实际别名进行比较,如果二者不同,则使用实际别名,否则使用标签 ID。

注意:如果你更改了标签的别名,则需要重新保存固定链接才能生效。


/* WordPress文章标签以id方式展示
/* 默认以ID展示,如果修改过别名,就以修改过的别名展示
/* 文章来源:https://wpriji.com/m/20200484.html
/*--------------------------------------------------------------------------------------*/
add_action('generate_rewrite_rules', 'tag_rewrite_rules');
add_filter('term_link', 'tag_term_link', 10, 3);
add_action('query_vars', 'tag_query_vars');

function tag_rewrite_rules($wp_rewrite) {
    $new_rules = array(
        'tag/(\d+)/embed/?$' => 'index.php?tag_id=$matches[1]&embed=true',
        'tag/(\d+)/page/(\d+)/?$' => 'index.php?tag_id=$matches[1]&paged=$matches[2]',
        'tag/(\d+)/?$' => 'index.php?tag_id=$matches[1]',
        'tag/([^/]+)/?$' => 'index.php?tag=$matches[1]',
    );
    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}

function tag_term_link($link, $term, $taxonomy) {
    if ($taxonomy == 'post_tag') {
        $slug = $term->slug;
        $default_slug = sanitize_title($term->name);
        $identifier = ($slug === $default_slug) ? $term->term_id : $slug;

        return home_url('/tag/' . $identifier . '/');
    }
    return $link;
}

function tag_query_vars($public_query_vars) {
    $public_query_vars[] = 'tag_id';
    return $public_query_vars;
}

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享