简化wordpress的固定连接,使用ID作为固定链接的方式
wordpress的固定连接
我们知道,wordpress的固定连接有几种方式可选,总的来说可分为三种类型\
1.默认的动态链接(?p=1)
2.使用别名作为链接(文字,中文或者英文)
3.使用ID作为链接(数字)
默认的固定连接我们不提,因为一般我们都会将固定连接设为伪静态方式,这样更有利于seo的优化
我们是在中国使用的中文网站,如果使用别名的话,一般的默认的别名就是文章的标题,那么如果你的标题是中文,那么你的固定连接也会显示为中文。
中文的固定连接是非常不友好的,以为你可以复制中文的url再粘贴,会发现变成了一堆乱码,而且在百度等搜索引擎收录的时候,也会以乱码(转码)的形式出现
所以,如果我们在使用wordpress的别名作为固定连接的时候,一般会使用拼音转化插件将这些别名转化为拼音。
如果是英文站,使用英文全拼的url是对搜索引擎比较有利的,但是如果是中文站,使用拼音就没什么优势了,特别如果使用全拼的方式,会造成url非常的长,这点也是非常不利的。
所以对于中文网站来说,拼音固定连接并没有什么优势,还会造成url的长度过长。
总体来说,我们在网站的固定连接上,不希望有太长的链接,链接越简洁越好,因此使用数字连接(使用ID作为链接)是比较好的。
wordpress的文章ID一般来说就是一段数字,因此是最为简洁的url。
修改wordpress的固定连接,而不影响之前文章的固定连接
我们知道固定连接一般是不能经常去修改的
因为搜索引擎收录之后,如果修改了固定连接,那么就会变成无法访问的链接,会导致网站大量404的情况发生。
如果我们直接修改wordpress的固定连接,那么不管是新的文章还是老的文章的固定链接都会被统一改动。
因此如果我们想要将我们的网站从文章名修改到ID数字连接,而又不会影响到以前的文章,那么就需要特别的方式进行修改了
此前提是,你的固定连接设置的是文章名( /%postname% ),可以使用以下代码修改,并且不需要变动你的固定连接设置:
让wordpress自动将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' );
}}
将以上代码复制到你的function.php中,(WEB主题公园的付费用户可以复制到widget.php中),就可以将新文章的url以id形式呈现了,并且不会影响老文章的固定连接。
您好!请登录