纯代码实现WordPress文章标题自动生成英文URL路径

沃森博客 2017年9月4日15:25:26WordPress评论1,013阅读模式

wordpress在后台设置固定链接可以实现伪静态。一般常设的固定链接形式无非就是/%post_id%.html/%postname%.html这两种,post_id简洁美观,postname利于优化。用posnname比较麻烦的就是要手动设置成拼音或英文,为了方便给大家分享一个纯代码实现WordPress文章标题自动生成英文URL路径的方法。

实现方法:

编辑wordpress主题目录下的functions.php文件,在最后一个?>标签前新添如下代码并保存。如果没有?>标签,则直接加到最后面。

  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. }  

这样我们在添加文章提交发布之后,就会自动的将文章标题实现为英文URL。

注意:一般中文网站的标题翻译过来URL很长,还是需要手工适当的删减一下。

沃森博客
  • 本文由 发表于 2017年9月4日15:25:26
  • 本文来自互利网收集整理,问题反馈联系邮箱:wosnnet@foxmail.com,转载请务必保留本文链接:https://wosn.net/268.html

发表评论