广告资源W1

WordPress旧文章别名不变,新文章以ID命名文章链接,以前的链接不变。

修改原因:

本站之前为了让文章ID连续看起来美观,踩了一个大坑。

就是文章链接使用了别名/%postname%.html 作为文章固定链接,当然别名是中文的,然后每一个都去手动自己修改为连续的数字ID。

导致后面文章越来越多,发现每次都去改ID,太消磨时间了,而且要连续文章ID还要每次都去记住上一个ID是什么,十分费神。

达到目的:

现在想把文章固定链接命名方式/%postname%.html,改为:/%post_id%/.html,让文章ID作为文章链接名称。

我这个时候去后台修改为/%post_id%/.html以后发现,以前的自定义别名文章全部都自动换为了文章ID,那样就会出现一个很严重的事情:百度搜索引擎收录的文章全部会出现404或者已经收录的文章对不上现在的文章,那样肯定不行的,严重直接导致网站被K,这样的体验对搜索引擎和用户来说都是非常糟糕的事情,所以万万不可采取此举。

亲测解决方案:

下面给大家说一个不改变也不影响之前的文章的链接,新发布的文章自动使用文章ID作为文章别名的亲测方法,非常牛逼克拉斯。

1.后台设置固定链接依旧为别名不能改变:/%postname%.html或者/%postname% ,看自己之前有没有对文章链接+html 选择。

图片[1]-WordPress旧文章别名不变,新文章以ID命名文章链接,以前的链接不变。-易站站长网

2.将以下代码加入到主题下面的functions.php文件中,注意是要加在<?php 标签之后。

/**
* WordPress新文章自动使用文章ID作为别名
* 作用:即使你设置固定连接结构为 /%postname% 或者 /%postname%.html,新发布的文章仍旧自动以文章ID作为文章别名。
*/
add_action( 'save_post', 'using_id_as_slug', 10, 2 );
function using_id_as_slug($post_id, $post){
global $post_type;
if($post_type=='post'){ //只对新文章生效
// 如果是老文章的版本,不生效。
if (wp_is_post_revision($post_id))
return false;
// 取消挂载该函数,防止无限循环
remove_action('save_post', 'using_id_as_slug' );
// 使用文章ID作为新文章的别名
wp_update_post(array('ID' => $post_id, 'post_name' => $post_id ));
// 重新挂载该函数
add_action('save_post', 'using_id_as_slug' );
}
}

3.发布测试,就算设置了以别名/%postname%.html作为文章固定链接,依旧文章别名/%post_id%/.html显示为文章ID作为固定链接。

图片[2]-WordPress旧文章别名不变,新文章以ID命名文章链接,以前的链接不变。-易站站长网

你可能感兴趣:

WordPress发布文章ID乱序和重新排列的解决办法

THE END
喜欢就点个赞再走呗~
点赞7赞赏 分享
说点什么 抢沙发
头像
说点正能量的内容吧
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容