现在的位置:首页>wordpress>正文

WordPress文章不用插件自动生成英文别名

2016年08月03日 ⁄ 共 2182字 评论 1 条

相信目前还有不少朋友,对于使用/%postname%.html这种形式的wordpress博客网站,还是有很多的,其实也就是使用的固定链接设置这一方面的东西了,目测现在有不少朋友,都是使用的/%postname%.html这种方式,那么如果使用这种方式的话,其中一个重点,就是如何获得WordPress文章的英文别名了,网上有很多的方法,这里部落提供一个.

当然,这方面的插件也是有的,比如SEO Ultimate,就是可以修改的,但为了这样一个功能,不值得搞一个插件.

如果你用的别名是中文,那么调用出来的将会是一堆乱码,因为WordPress对中文的别名进行了编码,在数据库中存储的不是中文.

WordPress如何获取当前文章别名

首先来看看当前文章别名:

在文章编辑页,点击某篇文章下的"快速编辑",那里也可以编辑别名:

WordPress文章不用插件自动生成英文别名

WordPress中提供了<?php the_title(); ?>来获取文章标题,<?php the_permalink(); ?>用于获取当前文章的链接,但是并没有发现获取文章别名的函数。找不到相应的函数,我们可以自己写个函数,以下是已编写好的函数,你可以编辑你的主题目录中的functions.php,在 ?> 前面添加以下函数:

  1. function the_slug() {   
  2.     $post_data = get_post($post->ID, ARRAY_A);   
  3.     $slug = $post_data['post_name'];   
  4.     return $slug;    
  5. }  

然后你就可以在你需要的地方调用该函数了:

  1. <?php echo the_slug(); ?>   

输出结果为当前文章的别名.

WordPress文章不用插件自动生成英文别名

1.将代码加到当前主题functions.php即可:

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

原理就是通过百度翻译的接口,自动翻译你填写的文章名,不过看着如果文章名长的话,别名也很长啊.

对于搜索引擎优化的话,这种方式,不太可取,原因是链接太长.

2.微软版,继续上代码:

  1. // 自动生成英文别名 - 微软版 from www.mfbuluo.com
  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. }

小结

文章内容来源自网络,由免费部落整理发布.

如果您的WordPress网站还没有上线,可以考虑使用/%postname%.html这种英文别名方式,如果已经设置好固定链接的话,部落就建议大家不要再去搞了.英文别名的话,最大的好处是,链接中会包含有某个关健词,这样用户更容易通过搜索引擎找到您的网页,你懂的.

评论 1 条 评论内容很精采,有内幕,而且绝对有干货

  1. 香港虚拟主机 2016年08月03日 16:17  @回复  Δ-49楼 回复

    WordPress文章不用插件自动生成英文别名,第一次听说除了用插件实现外,还可以这样实现英文文章

给我留言