教你把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' );

 

测试效果

生效成功后,就如下图

 

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

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

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

// 自动生成英文别名 - 百度版
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

版权声明:
作者:ivpsr.com
链接:https://ivpsr.com/3157.html
来源:VPS部落
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
教你把WordPress文章别名自动设置为英文/文章ID详细教程
简介 今天无意间发现写文章的别名比较冗长,想修改的简洁一点。但凡在使用wordpress程序的站长我相信肯定对于文 章的别名不会陌生,别名是指向该特定页面的URL……
<<上一篇
下一篇>>