WordPress中文标签批量翻译为英文

发布时间:

最近一年在WordPress网站运行期间做了不少优化,但标签部分还没来得及搞,有不少标签的URL链接以及别名还是中文的,这对搜索引擎来说不太友好,看起来也不美观。

近日打算整理一下标签和文章,删除冗余标签,把这一部分优化一下。自己造轮子要费不少时间,关键是也不会,搜索之后发现有不少现成的插件,比如:wp-slug-translate、wenprise-pinyin-slug ,auto-tag-slug。

auto-tag-slug:下架,貌似不能用。

wp slug translate:下架,未实际测试。

wenprise-pinyin-slug:目前可用,可对接百度翻译API,但不支持批量修改中文别名为英文。

以下内容均基于插件: wenprise-pinyin-slug

随着网站运营时长的增加,标签的数量可能会很多,手动去修改非常浪费时间,针对这个问题继续搜索找到了一篇两年前的文章,文章作者在原插件的基础上增加了一段代码用来实现标签的批量翻译。

//批量<a href="https://www.codebye.com/tag/translate" title="查看更多关于翻译的文章" target="_blank">翻译</a>Tags
add_filter( 'bulk_actions-edit-post_tag', 'codebye_bulk_actions_tags' );
 
function codebye_bulk_actions_tags( $bulk_array ) {
 
    $bulk_array['trans_chinese_tags'] = '中文别名<a href="https://www.codebye.com/tag/translate" title="查看更多关于翻译的文章" target="_blank">翻译</a>';
    return $bulk_array;
}
 
add_filter( 'handle_bulk_actions-edit-post_tag', 'codebye_bulk_action_handler', 10, 3 );
 
function codebye_bulk_action_handler( $redirect, $doaction, $object_ids ) {
 
    // do something for "中文别名<a href="https://www.codebye.com/tag/translate" title="查看更多关于翻译的文章" target="_blank">翻译</a>" bulk action
    if ( $doaction == 'trans_chinese_tags' ) {
        foreach ( $object_ids as $tax_id ) {       
      wp_update_term($tax_id, 'post_tag', array('slug' => ''));       
        }
    }
 
    return $redirect;
}

使用方法:添加到网站根目录/wp-content/plugins/wenprise-pinyin-slug/src下的slug.php文件末尾

也可点击下方按钮下载添加好此代码的插件压缩包,在后台>>插件>>安装插件>>选择下载好的压缩包上传并安装

点此下载

实现的效果:

WordPress中文标签批量翻译为英文
应用后,选中的标签中文别名将会自动翻译为英文。这里用到了 WordPress 函数 wp_update_term ,以下是参数说明:

由于使用了百度翻译免费的API,官方限定QPS=1,一次勾选太多标签可能会出现无法翻译的情况,请知悉!

Parameters

$term_id

(int) (Required) The ID of the term$taxonomy

(string) (Required) The context in which to relate the term to the object.$args

(array|string) (Optional) Array of get_terms() arguments.

Default value: array()