wordpress在后台设置固定链接可以实现伪静态。一般常设的固定链接形式无非就是/%post_id%.html
、/%postname%.html
这两种,post_id简洁美观,postname利于优化。用posnname比较麻烦的就是要手动设置成拼音或英文,为了方便给大家分享一个纯代码实现WordPress文章标题自动生成英文URL路径的方法。
实现方法:
编辑wordpress主题目录下的functions.php文件,在最后一个?>标签前新添如下代码并保存。如果没有?>标签,则直接加到最后面。
- // 自动生成英文别名 - 百度版
- function bymt_slug_auto_translate( $title ) {
- $wp_http_get = wp_safe_remote_get( 'http://fanyi.baidu.com/v2transapi?from=zh&to=en&transtype=trans&query=' . $title );
- if ( emptyempty( $wp_http_get->errors ) ) {
- if ( ! emptyempty( $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;
- }
- add_filter( 'sanitize_title', 'bymt_slug_auto_translate', 1 );
- // 自动生成英文别名 - 微软版
- function bymt_slug_auto_translate( $title ) {
- $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 . '"]' );
- if ( emptyempty( $wp_http_get->errors ) ) {
- if ( ! emptyempty( $wp_http_get['body'] ) ) {
- preg_match('/"TranslatedText":"([^"]+)/i', $wp_http_get['body'], $trans_result);
- $trans_title = $trans_result[1];
- return $trans_title;
- }
- }
- return;
- }
这样我们在添加文章提交发布之后,就会自动的将文章标题实现为英文URL。
注意:一般中文网站的标题翻译过来URL很长,还是需要手工适当的删减一下。
评论