WordPress文章固定链接去掉父级或子分类目录方法

在 WordPress 网站中,如果 固定链接 使用/%category%/ 的时候,发布的文章链接会详细展示父级和所有子分类目录,导致文章 URL 链接会变得很长,且很混乱,不利于SEO。

WordPress文章固定链接去掉父级或子分类目录方法

举个例子:

芝麻科技讯 顶级栏目有 苹果(apple),里面有分类了 资讯(news)子栏目,默认情况下,该子分类的文章链接为:

https://www.zmtc.com/apple/news/id.html

如果资讯里面还有子分类,那么文章链接还会更长。

如果我们要优化固定链接的文章网址,希望链接变短一些该如何操作呢?

目前,主要有两种思路,一种是去掉 父分类,链接就变成了这样:

https://www.zmtc.com/news/id.html(方式一)

另外一种是去掉 子分类,链接就变成了这样:

https://www.zmtc.com/apple/id.html(方式二)

相对而言,小编更喜欢第二种目录格式,具体大家根据自己喜好选择即可。

WordPress文章固定链接去掉父级或子分类目录如何实现呢?

其实也很简单,只需要修改主题 functions.php 文件即可实现,方法如下。

方式一:去掉父级分类目录

// ZMTC.COM去掉父级分类目录
add_filter( ‘post_link’, ‘dahuzi_remove_parent_cats_from_link’, 10, 3 );
function dahuzi_remove_parent_cats_from_link( $permalink, $post, $leavename )
{
$cats = get_the_category( $post->ID );
if ( $cats ) {
usort( $cats, ‘_usort_terms_by_ID’ );
$category = $cats[0]->slug;
if ( $parent = $cats[0]->parent ) {
$parentcats = get_category_parents( $parent, false, ‘/’, true );
$permalink = str_replace( $parentcats, ”, $permalink );
}
}
return $permalink;
}

将以上代码添加到 functions.php 文件即可。

方式二:去掉子分类目录

// ZMTC.COM去掉后子分类目录
add_filter(‘post_link’,’custom_post_type_link’,10,3);
function custom_post_type_link($permalink, $post, $leavename) {
if (!gettype($post) == ‘post’) {
return $permalink;}
switch ($post->post_type) {
case ‘post’:
//$permalink = get_home_url() . ‘/’ . $post->post_name . ‘/’;
$cats = get_the_category($post->ID);
$subcats = array();
foreach( $cats as $cat ) {
$cat = get_category($cat->term_id);
//if($cat->parent) { $subcats[] = sanitize_title($cat->name);
if($cat->parent) { $subcats[] = $cat->slug;}}
if($subcats) {
foreach($subcats as $subcat) {
$subcat = $subcat.’/’;
$permalink = str_replace($subcat, “”, $permalink);}}
break;}
return $permalink;}

将以上代码添加到 functions.php 文件即可。

以上就是WordPress文章固定链接去掉父级或子分类目录方法,如果你的Wordpress网站固定链接使用了/%category%/ ,希望文章链接尽量短一些的话,可以通过两种方式进行优化哦。

(2)
芝麻科技讯的头像芝麻科技讯管理团队
上一篇 2024-01-15 21:46
下一篇 2024-01-15 22:54

相关推荐

发表回复

登录后才能评论
扫码关注

扫码关注微信

关注我们获取最新资讯
关注微信公众号
微信扫码关注我们

网址导航 微信导航
分享本页
返回顶部