WordPress文章别名变为文章ID、英文、拼音完全教程

转载   雅兮网  2016-04-17 07:23:07  635 人阅读  21 条评论

投放广告联系   诚邀合作伙伴   赞助我们   公告栏   赞助光荣榜

使用WordPress的站长朋友肯定对文章别名不陌生,大多数时间我们是用不到这个功能的,但在国外很多站点的固定链接都是采用文章别名的。且有些插件和主题是必须要设置%postname% 这样的别名固定链接才能使用,而中文站点自动生成的文章别名直接是汉字,还需要我们自动修改,今天雅兮网就给大家带来将WordPress文章别名设置为文章ID、英文、拼音完全教程。

WordPress文章别名变为文章ID、英文、拼音完全教程

一、将文章别名设置为文章ID

1、新文章自动使用ID作为别名

将下面的代码添加到主题的 functions.php,新建的文章都会自动使用ID作为别名。

  1. /**
  2. * WordPress新文章自动使用ID作为别名
  3. * 雅兮网整理:http://www.iyaxi.com
  4. */
  5. add_action( 'save_post', 'using_id_as_slug', 10, 2 );
  6. function using_id_as_slug($post_id$post){
  7. global $post_type;
  8. if($post_type=='post'){ //只对文章生效
  9. // 如果是文章的版本,不生效
  10. if (wp_is_post_revision($post_id))
  11. return false;
  12. // 取消挂载该函数,防止无限循环
  13. remove_action('save_post', 'using_id_as_slug' );
  14. // 使用文章ID作为文章的别名
  15. wp_update_post(array('ID' => $post_id, 'post_name' => $post_id ));
  16. // 重新挂载该函数
  17. add_action('save_post', 'using_id_as_slug' );
  18. }
  19. }

2、修改老文章别名为文章ID

将下面的代码添加到主题的 functions.php。

  1. /**
  2. * 修改WordPress旧文章别名为文章ID
  3. * 雅兮网整理:http://www.iyaxi.com
  4. */
  5. function Bing_post_name_id(){
  6. query_posts( 'posts_per_page=-1' );
  7. while( have_posts() ){
  8. the_post();
  9. $post_id = $GLOBALS['post']->ID;
  10. wp_update_post( array(
  11. 'ID' => $post_id,
  12. 'post_name' => $post_id
  13. ) );
  14. }
  15. wp_reset_query();
  16. }
  17. if$_GET['post_name_id'] == 'yes' ) add_action( 'init', 'Bing_post_name_id' );

放置好代码后,访问一下下边的网站,访问前注意一定要备份数据,以免出错。

http://yoursite.com?post_name_id=yes

文章多的话网页加载会比较慢,因为正在一篇文章一篇文章的修改别名,要耐心等到网页完全加载好才可以。

加载好后,删除之前添加的代码,修改完成,所有文章的别名都会变成自身的ID。

二、将文章别名设置为标题英文

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

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

下面是微软翻译版的

  1. // 自动生成英文别名 - 微软版
  2. function bymt_slug_auto_translate( $title ) {
  3. $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 . '"]' );
  4. if ( emptyempty( $wp_http_get->errors ) ) {
  5. if ( ! emptyempty( $wp_http_get['body'] ) ) {
  6. preg_match('/"TranslatedText":"([^"]+)/i', $wp_http_get['body'], $trans_result);
  7. $trans_title = $trans_result[1];
  8. return $trans_title;
  9. }
  10. }
  11. return;
  12. }

笔者在实际使用中发现,使用此方法设置英文别名速度略慢,毕竟是是查询翻译结果,且翻译出来的别名也较长,不太推荐。

三、将文章别名设置为标题拼音

以下分享几个较好的插件,可以自动将别名设置为标题的拼音,

Pinyin SEO

这一款是国人开发的,在国内使用量也是较多的一款,可以自动把文章页,分类页,标签页的中文别名自动转换成为拼音格式,还可以把以前文章中的别名也转换过来,使用这款插件的效率是比较高的。

WP Slug Translate

这一款是国外开发的插件,可以把文章的slug转换为英文,如果有一些无法正常翻译,则就会使用文章的ID来作为别名,唯一不足的就是只能转换文章的slug,其它的无法转换,相对 pinyin SEO,功能上要稍微差一些。

wp slug translate

这款插件貌似已经不再更新了,插件的功能相当的强大,可以把一切中文别名转化为英文或者是拼音,包括文章,分类,标签页等等,但需要主机开启 fsockopen 函数,否则则不能正常使用,如果没有主机权限的小伙伴就不要使用了。

Auto Tag Slug

这一款插件主要是针对标签tag来自动转换的,将tag中文别名转换成为拼音或者是英文,可以进行批量转换,同样需要开启 fsockopen 函数,否则会出现错误提示:Function fsockopen() is not supported, please contact your webmaster.自我感觉安装这款插件的意义不大,如果一个个人博客站点,tag 是非常有限的,不会有太大,我们完全可以手动去转换。

如果文章对你有帮助,请赞赏支持boke112导航发展!

文章标签: ,   ,  
原文地址:http://www.iyaxi.com/2016-04-06/923.html
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为转载文章,来源于 雅兮网 ,版权归原作者所有,欢迎分享本文,转载请保留出处!
WordPress/zblogPHP免费响应式博客主题Blogs

 发表评论


  1. 真我风采
    真我风采 【进士】 @回复

    方法很好。不过转换时有风险,还是保险起见。

  2. 雅兮网
    雅兮网 【尚书】 @回复

    没想到我这篇被转过来了 [偷笑] 发现下面很多人误解了我的意思,改别名并不是说改固定连接,只是有时候固定链接或者主题、插件需要调用文章别名,修改别名就很有必要了。

  3. videoclub
    videoclub 【尚书】 @回复

    不错的的学习教程

  4. 微部落博客
    微部落博客 【丞相】 @回复

    这个应该有插件能实现

  5. 新成
    新成 【状元】 @回复

    呵呵

  6. 大学问社区
    大学问社区 【进士】 @回复

    马克一下

  7. 江西养牛人
    江西养牛人 【状元】 @回复

    还是喜欢数字,这样我可以更直观的看到我已经发布到多少文章了,哈哈。

  8. 小C博客
    小C博客 【进士】 @回复

    感觉id好点,但是我不知道怎么让id连续!!

    • boke112导航
      boke112导航【村长】2016-04-17 21:07  回复

      @小C博客不要让文章自动备份,不要通过后台直接上传图片等,可以有效减少消耗ID,可以让文章ID有一定的连贯性。

  9. 玉满斋
    玉满斋 【尚书】 @回复

    不错!学习了!支持一下!

  10. 明月登楼
    明月登楼 【王爷】 @回复

    不错,我还是喜欢ID作为别名!

  11. 橘子书
    橘子书 【丞相】 @回复

    新文章用id好像直接固定链接就可以了吧?

  12. 憧憬Licoy
    憧憬Licoy 【举人】 @回复

    更换为文章名的英文之前一直想弄,不过百度收录的文章一改链接就没有收录了

    • 陌小雨博客
      陌小雨博客 【进士】2016-04-17 10:17  回复

      @憧憬Licoy恩,教程整理的不错,要是再附上各种301跳转的代码就更完美了,就比如你说的,比如之前设置的是拼音别名,百度已经收录很多了,全部更改为id别名后,301跳转如何写,加上这个301跳转就是一篇非常棒的文章了,不需要再额外去搜索。 [拳头]

    • boke112导航
      boke112导航【村长】2016-04-17 21:01  回复

      @憧憬Licoy其实这种链接最好是刚做站的时候,或者文章收录不多的时候修改,到了后期文章多了不建议修改