之前在 使用英文字符为网站链接命名,避免后期不必要的麻烦 一文中我曾提到过,对于网站中链接使用中文的情况后期我们在网站搬家的时候可能会出现某些链接无法识别而造成网站访问404的问题。但是“人有失足,马有失蹄”,在实际应用过程中对于以汉语为母语的我们来说,很难保证网站链接不是中文。为了避免由于失误导致的中文链接而使得后期网站链接失效的问题,我从网上找来些代码并稍微整理了下以失效网站链接自动转换英文的目的。代码原理很简单,主要是通过调用百度翻译的API来将我们编辑文章时的标题进行翻译然后替换原有链接。下面来看一下这段代码如何使用。

在修改主题文件之前,还是那句话备份!备份!!备份!!! 重要的事情说三遍。这次只需要修改 function.php 文件即可,大家在修改之前先备份下这个文件。

将下面的代码直接复制粘贴到主题 function.php 文件的末尾,然后再上传覆盖掉原有的 function.php 文件即可。

//网站链接自动转换为英文
function qgg_translate_cn_post_title_to_en( $title ) {
    $translation_render = 'http://fanyi.baidu.com/v2transapi?from=zh&to=en&transtype=realtime&simple_means_flag=3&query='.$title;
    $wp_http_get = wp_safe_remote_get( $translation_render );
  if ( empty( $wp_http_get->errors ) ) {
      if ( ! empty( $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 $title;
}
add_filter( 'sanitize_title', 'qgg_translate_cn_post_title_to_en', 1 );

对于这一类功能性的问题,我个人还是比较建议使用纯代码的方式解决的。但是对于很多人来说可能更倾向于使用插件,这里给大家推荐一款链接转拼音的插件——SO Pinyin Slugs,虽然没有转换成英文那么高逼格,但是对于国内用户来说用起来还是很爽的。
2017年12月12日更新  近期发现代码版会拖慢网站3-8s的页面加载时间,大大影响网站访客体验。能力有限想了半天没想好怎么解决,留待日后慢慢想办法吧。当然,如果你不在乎这几秒的时间上面代码也是可以用的。

官网下载https://wordpress.org/plugins/so-pinyin-slugs/