WordPress标题自动翻译英文插件

原创 Laughing  2017-07-09 03:10  阅读 152 次 评论 0 条

采用百度翻译的翻译API,将中文的文章标题自动翻译为英文。经过测试,适用于WordPress内置的文章类型以及bbPress、BuddyPress、WooCommerce、DW Question Answer等插件添加的自定义文章类型。

使用方法

将一下代码放入functions.php文件中

  1. function translate_chinese_post_title_to_en_for_slug( $title ) {  
  2.     global $wpdb;  
  3.     $tableposts = $wpdb->posts ;  
  4.     $translation_render = 'http://fanyi.baidu.com/v2transapi?from=zh&to=en&transtype=realtime&simple_means_flag=3&query='.$title;  
  5.     $wp_http_get = wp_safe_remote_get( $translation_render );  
  6.     if ( emptyempty$wp_http_get->errors ) ) {  
  7.         if ( ! emptyempty$wp_http_get['body'] ) ) {  
  8.             $trans_result = json_decode( $wp_http_get['body'], true );  
  9.             $trans_title = $trans_result['trans_result']['data'][0]['dst'];  
  10.   
  11.   
  12.             //find post-name equal  
  13.             $sql = "SELECT post_title,post_name FROM $tableposts WHERE ID <> $postID and post_name = '".$trans_title."'";  
  14.             $res = $wpdb->get_results($sql);  
  15.             if(count($res) > 0){//find equal  
  16.                 $strPostID = strval($postID);  
  17.                 $appendSlug = "";  
  18.                 $digits=array("zero","one","two","three","four","five","six","seven","eight","nine");  
  19.                 for($i=0;$istrlen($strPostID);$i++){  
  20.                     $appendSlug = $appendSlug."-".$digits[intval(substr($strPostID,$i,1))];  
  21.                 }  
  22.                 $trans_title = $trans_title.$appendSlug;  
  23.             }  
  24.   
  25.   
  26.             return $trans_title;  
  27.         }  
  28.     }  
  29.     return $title;  
  30. }  
  31. add_filter( 'sanitize_title', 'translate_chinese_post_title_to_en_for_slug', 1 );  
本文地址:https://www.lisen.me/wordpress-titles-automatically-translate-english-plugins.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情