WordPress站长朋友肯定对文章别名很熟悉,大多我们是用不到它的,但在国外很多站点的固定链接都是采用文章别名的。且有些插件和主题是必须要设置%postname% 这样的别名固定链接才能使用,而中文站点自动生成的文章别名直接是汉字,还需要我们自动修改,今天小逸就教大家 WordPress 文章别名设置为文章 ID、英文、拼音完全教程。友好的seowordpress全站url改为.html
将文章别名设置为文章 ID
1、新文章自动使用 ID 作为别名
将下面的代码添加到主题的 functions.php,新建的文章都会自动使用 ID 作为别名
/**
* WordPress 新文章自动使用 ID 作为别名
* XiaoYi blog整理:http://www.scczz.com
*/
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' );
}
}
2、修改老文章别名为文章 ID
将下面的代码添加到主题的 functions.php
/**
* 修改 WordPress 旧文章别名为文章 ID
* XiaoYi blog整理:http://www.scczz.com
*/
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' );
放置好代码后,访问一下下边的网站,访问前注意一定要备份数据,以免出错。
http://xxxx.com?post_name_id=yes
文章多的话网页加载会比较慢,因为正在一篇文章一篇文章的修改别名,要耐心等到网页完全加载好才可以。
加载好后,删除之前添加的代码,修改完成,所有文章的别名都会变成自身的 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
这款插件貌似已经不再更新了,插件的功能相当的强大,可以把一切中文别名转化为英文或者是拼音,包括文章,分类,标签页等等,但需要主机开启 fsockopen 函数,否则则不能正常使用,如果没有主机权限的小伙伴就不要使用了。
Auto Tag Slug
这一款插件主要是针对标签 tag 来自动转换的,将 tag 中文别名转换成为拼音或者是英文,可以进行批量转换,同样需要开启 fsockopen 函数,否则会出现错误提示:Function fsockopen() is not supported, please contact your webmaster.自我感觉安装这款插件的意义不大,如果一个个人博客站点,tag 是非常有限的,不会有太大,我们完全可以手动去转换。
还没有人赞赏,快来当第一个赞赏的人吧!
- 2¥
- 5¥
- 10¥
- 20¥
- 50¥
声明:本文为原创文章,版权归小王总博客所有,欢迎分享本文,转载请保留出处!