虽然WordPress网站运行很长时间了,不过很少进行优化,有部分标签和文章的URL链接都是中文的,这对搜索引擎来说不太友好。近日打算整理一下标签和文章,删除冗余标签,并将中文url地址改为英文或者拼音地址。自己造轮子要费不少时间,这里使用了其他插件,比如:wp-slug-translate、wenprise-pinyin-slug ,
插件的功能:自动转换 WordPress 中的中文文章别名、分类项目别名、图片文件名称为汉语拼音或英文翻译。两个用着都能实现目标,具体应用这里就不详细介绍了。
这里主要是介绍自定义的一个功能,插件并没有提供,需要自己实现。借助插件的翻译实现批量修改现有标签的中文别名。
//批量<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; }
实现的效果:
应用后,选中的标签中文别名将会自动翻译为英文。这里用到了 WordPress 函数 wp_update_term ,以下是参数说明:
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()