教你把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
justhost不限流量大带宽VPS酷暑5折,免费换IP、可选香港、韩国、日本、新加坡、美国等50个全球机房
justhost不限流量大带宽VPS酷暑5折,免费换IP、可选香港、韩国、日本、新加坡、美国等50个全球机房
2
Hostdare:黑色星期五85折促销CKVM vps,机会不多,低至$42.49/年
Hostdare:黑色星期五85折促销CKVM vps,机会不多,低至$42.49/年
3
教你Google Cloud谷歌云从创建实例到配置固定IP及防火墙策略
教你Google Cloud谷歌云从创建实例到配置固定IP及防火墙策略
4
ZgoVPS中国优化高速VPS年付$15起,香港、日本、美国机房、硬件高配可解锁流媒体
ZgoVPS中国优化高速VPS年付$15起,香港、日本、美国机房、硬件高配可解锁流媒体
5
ReliableSite独立服务器月付49美元起,纽约、洛杉矶、迈阿密、达拉斯、荷兰、墨西哥机房、1Gbps不限流量
ReliableSite独立服务器月付49美元起,纽约、洛杉矶、迈阿密、达拉斯、荷兰、墨西哥机房、1Gbps不限流量
6
Vultr与Signiant合作提高媒体传输效率
Vultr与Signiant合作提高媒体传输效率
7
CloudCone新出CDN Nexus,全球覆盖含亚洲节点,附指南
CloudCone新出CDN Nexus,全球覆盖含亚洲节点,附指南
8
Layer.ae:特惠仅$4.99/月,荷兰VPS,AMD Ryzen 9950X/2GB内存/50GB NVMe存储/3T流量/10Gbps带宽
Layer.ae:特惠仅$4.99/月,荷兰VPS,AMD Ryzen 9950X/2GB内存/50GB NVMe存储/3T流量/10Gbps带宽
9
一键翻译Telegram信息,多国语言翻译为中文
一键翻译Telegram信息,多国语言翻译为中文
10
TikTok创作者基金开通条件
TikTok创作者基金开通条件