教你把WordPress文章别名自动设置为英文/文章ID详细教程

简介

今天无意间发现写文章的别名比较冗长,想修改的简洁一点。但凡在使用wordpress程序的站长我相信肯定对于文

章的别名不会陌生,别名是指向该特定页面的URL 的一部分。一般而言,别名通常与原始标题非常相似。我这里就教大

家如何来将wordpress文章别名设置为英文或者文章ID的方法。

 

教程

自动修改新文章的别名设置为文章的ID

我们可以使用下面的代码添加到主题的functions.php文件中,这样你新建的文章就会自动的使用ID当做别名

/**
* 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' );
}
}

上面的方法适用于新创建的文章,但是我们如果想要修改老的文章,就还需要利用下面的代码进行

 

自动修改旧文章别名为文章ID

使用下面的代码添加到主题的functions.php文件中,然后访问http://这里是你网站域名.com?post_name_id=yes

操作时记得先备份数据库,备份是一个好习惯,避免不必要的灾难发生,文章较多的话网页加载的时间就比较久,耐心等

待加载完成,加载完成后,删除添加的这个修改旧文章的代码即可,这样所有文章的别名都会变成文章ID了

/**
* 修改WordPress旧文章别名为文章ID
*/
function Bing_post_name_id(){
query_posts( 'posts_per_page=-1' );
while( have_posts() ){
the_post();
$post_id = $GLOBALS['post']->ID;
wp_update_post( array(
'ID' => $post_id,
'post_name' => $post_id
) );
}
wp_reset_query();
}
if( $_GET['post_name_id'] == 'yes' ) add_action( 'init', 'Bing_post_name_id' );

 

测试效果

生效成功后,就如下图

- wenzhangid

 

自动修改文章别名设置为英文

本方法可以将文章别名设置为文章标题的英文,原理是通过百度翻译和微软翻译自动生成文章英文别名。不过这种

方式经过我验证,不推荐,经过翻译查询速度比较慢,而且名称特别长

// 自动生成英文别名 - 百度版
function bymt_slug_auto_translate( $title ) {
$wp_http_get = wp_safe_remote_get( 'http://fanyi.baidu.com/v2transapi?from=zh&to=en&transtype=trans&query=' . $title );
if ( emptyempty( $wp_http_get->errors ) ) {
if ( ! emptyempty( $wp_http_get['body'] ) ) {
$trans_result = json_decode( $wp_http_get['body'], true );
$trans_title = $trans_result['trans_result']['data'][0]['dst'];
return $trans_title;
}
}
return;
}
add_filter( 'sanitize_title', 'bymt_slug_auto_translate', 1 );

这个是微软翻译版的版本

// 自动生成英文别名 - 微软版
function bymt_slug_auto_translate( $title ) {
$wp_http_get = wp_safe_remote_get( 'http://api.microsofttranslator.com/v2/ajax.svc/TranslateArray2?appId=%22TKT68kjRgkUbVtIKst6Vo0Hxnb6g2f0K3tUMyn1gZ7nc*%22&from="zh"&to="en"&options={}&texts=["' . $title . '"]' );
if ( emptyempty( $wp_http_get->errors ) ) {
if ( ! emptyempty( $wp_http_get['body'] ) ) {
preg_match('/"TranslatedText":"([^"]+)/i', $wp_http_get['body'], $trans_result);
$trans_title = $trans_result[1];
return $trans_title;
}
}
return;
}

还有一种方法是使用插件来设置别名为拼音的,这里我就不过多介绍,有兴趣的可以自己去

搜Pinyin SEO、WP Slug Translate、wp slug translate、Auto Tag Slug

上一篇 教你如何Linux添加虚拟内存教程详细版
下一篇 ubuntu 20.04的安装和卸载火狐Firefox的教程

投稿邮箱:
ivpsr888@gmail.com (投稿详情)

TG订阅频道:
t.me/ivpsr_news 网站最新内容推送

TG交流群:
(点击加入) 用户交流

文章列表
1
Amazon AWS亚马逊云服务器香港深度测评,解锁ChatGPT,亚马逊云服务器怎么样?
Amazon AWS亚马逊云服务器香港深度测评,解锁ChatGPT,亚马逊云服务器怎么样?
2
傲游主机美国VPS上新Zont节点68元/月起,NTT原生IP三网直连AMD+U2 SSD硬盘
傲游主机美国VPS上新Zont节点68元/月起,NTT原生IP三网直连AMD+U2 SSD硬盘
3
Friendhosting新增小时计费方案,美国/日本/德国/荷兰等多机房VPS可选,最低0.012欧元/小时
Friendhosting新增小时计费方案,美国/日本/德国/荷兰等多机房VPS可选,最低0.012欧元/小时
4
Maple-Hosting荷兰高防抗投诉服务器优惠上线,10Gbps大带宽不限流量 $189/月起
Maple-Hosting荷兰高防抗投诉服务器优惠上线,10Gbps大带宽不限流量 $189/月起
5
Vultr 推出全局负载均衡:跨区域流量调度更快更稳
Vultr 推出全局负载均衡:跨区域流量调度更快更稳
6
搬瓦工CN2极速专线VPS 10Gbps带宽,香港CN2/日本CN2/新加坡CN2/美国CN2/加拿大CN2/荷兰CU2
搬瓦工CN2极速专线VPS 10Gbps带宽,香港CN2/日本CN2/新加坡CN2/美国CN2/加拿大CN2/荷兰CU2
7
binaryracks:E3-1270V3/16GB内存/6TB硬盘/30TB流量/1Gbps带宽,39.2美元/月
binaryracks:E3-1270V3/16GB内存/6TB硬盘/30TB流量/1Gbps带宽,39.2美元/月
8
VinaHost越南VPS,5折特惠AMD VPS月付低至4美元,无限流量 NVME VPS款免费12个月,越南机房
VinaHost越南VPS,5折特惠AMD VPS月付低至4美元,无限流量 NVME VPS款免费12个月,越南机房
9
新手入门级VMware上debian11简单安装教程
新手入门级VMware上debian11简单安装教程
10
教你汉化win2012系统安装中文语言包
教你汉化win2012系统安装中文语言包