高级
高级WP-CLI 命令

WP-CLI 命令

以下 WP-CLI 命令可用于翻译自定义文章、分类法术语(标签和分类目录)、媒体项目、菜单和用户。

WP-CLI 命令默认在没有登录用户的情况下运行。为了拥有创建翻译条目的适当权限,您必须通过 --user 选项以用户上下文运行命令:

wp gatotranslate post 123 --user=admin

wp gatotranslate post

翻译自定义文章(文章、页面、自定义文章类型)。

用法

wp gatotranslate post <ids> [options]

参数

参数说明
<ids>要翻译的文章 ID 列表,用逗号或空格分隔

选项

如果未提供,选项将使用插件设置中的值。

选项说明可选值
--translate-slugs=<bool>是否翻译别名true, false
--default-provider=<provider>默认翻译提供商chatgpt, claude, deepl, gemini, google_translate, deepseek, mistral, openrouter, self_hosted_llm
--status-to-update=<status>需要更新的文章状态draft, pending, publish, private, future, any
--status-when-translated=<status>翻译后文章的状态draft, pending, publish, private, current(即不修改状态)、same-as-origin(即从原始文章复制状态)
--copy-date=<bool>是否从原始文章复制日期true, false
--language-providers=<providers>语言提供商映射的 JSON 字符串以语言代码为键,以提供商名称、"none"(禁用该语言)或 "default"(使用默认提供商)为值的 JSON 字符串
--tasks=<tasks>要执行的任务的逗号分隔列表translate-content, translate-entity-relationships, replace-internal-links
--parts=<parts>要修改的内容部分的逗号分隔列表properties(标题、别名和摘要)、content(文章内容)、meta(自定义字段)
--porcelain仅输出适合脚本解析的基本信息无需值(标志)
--fail-if-log-notifications执行期间添加日志通知时失败无需值(标志)
--process-failed仅处理失败的翻译无需值(标志)

示例

# Translate post with ID 123
wp gatotranslate post 123 --user=admin
 
# Translate posts with IDs 123, 456, and 789
wp gatotranslate post 123,456,789 --user=admin
 
# Translate posts with IDs 123 and 456
wp gatotranslate post "123 456" --user=admin
 
# Translate post replicating the status and date of the original post
wp gatotranslate post 123 --user=admin --status-when-translated=same-as-origin --copy-date=true
 
# Translate post using ChatGPT as default provider
wp gatotranslate post 123 --user=admin --default-provider=chatgpt
 
# Translate post with a specific provider for each language
wp gatotranslate post 123 --user=admin --language-providers='{"es":"chatgpt","fr":"deepl"}'
 
# Translate post disabling a specific language
wp gatotranslate post 123 --user=admin --language-providers='{"de":"none"}'
 
# Translate only post properties (title, slug, and excerpt)
wp gatotranslate post 123 --user=admin --parts=properties
 
# Translate only post content and meta
wp gatotranslate post 123 --user=admin --parts=content,meta
 
# Only update the entity relationships for the target language
wp gatotranslate post 123 --user=admin --tasks=translate-entity-relationships
 
# Re-run translations for previously failed posts/languages only
wp gatotranslate post "123 456" --user=admin --process-failed

wp gatotranslate term

翻译分类法术语(分类目录、标签、自定义分类法)。

用法

wp gatotranslate term <ids> [options]

参数

参数说明
<ids>要翻译的术语 ID 列表,用逗号或空格分隔

选项

选项说明可选值
--translate-slugs=<bool>是否翻译别名true, false
--default-provider=<provider>默认翻译提供商chatgpt, claude, deepl, gemini, google_translate, deepseek, mistral, openrouter, self_hosted_llm
--language-providers=<providers>语言提供商映射的 JSON 字符串以语言代码为键,以提供商名称、"none"(禁用该语言)或 "default"(使用默认提供商)为值的 JSON 字符串
--tasks=<tasks>要执行的任务的逗号分隔列表translate-content, translate-entity-relationships
--parts=<parts>要修改的内容部分的逗号分隔列表properties(名称、别名)、content(描述)、meta(自定义字段)
--porcelain仅输出适合脚本解析的基本信息无需值(标志)
--fail-if-log-notifications执行期间添加日志通知时失败无需值(标志)
--process-failed仅处理失败的翻译无需值(标志)

示例

# Translate term with ID 1
wp gatotranslate term 1 --user=admin
 
# Translate terms with IDs 1, 2, and 3
wp gatotranslate term 1,2,3 --user=admin
 
# Translate term 1 disabling slug translation, and using OpenRouter as default provider
wp gatotranslate term 1 --user=admin --translate-slugs=false --default-provider=openrouterr
 
# Translate term 1 with a specific provider for each language
wp gatotranslate term 1 --user=admin --language-providers='{"es":"chatgpt","fr":"deepl"}'
 
# Translate disabling a specific language
wp gatotranslate term 1 --user=admin --language-providers='{"de":"none"}'
 
# Translate only term name and slug
wp gatotranslate term 1 --user=admin --parts=properties
 
# Translate only term description and meta
wp gatotranslate term 1 --user=admin --parts=content,meta
 
# Only update the entity relationships for the target language
wp gatotranslate term 1 --user=admin --tasks=translate-entity-relationships
 
# Re-run translations for previously failed terms/languages only
wp gatotranslate term 1,2,3 --user=admin --process-failed

wp gatotranslate media

翻译媒体项目(附件)。

用法

wp gatotranslate media <ids> [options]

参数

参数说明
<ids>要翻译的媒体 ID 列表,用逗号或空格分隔

选项

选项说明可选值
--translate-slugs=<bool>是否翻译别名true, false
--default-provider=<provider>默认翻译提供商chatgpt, claude, deepl, gemini, google_translate, deepseek, mistral, openrouter, self_hosted_llm
--language-providers=<providers>语言提供商映射的 JSON 字符串以语言代码为键,以提供商名称、"none"(禁用该语言)或 "default"(使用默认提供商)为值的 JSON 字符串
--tasks=<tasks>要执行的任务的逗号分隔列表translate-content, translate-entity-relationships, replace-internal-links
--parts=<parts>要修改的内容部分的逗号分隔列表properties(标题、别名)、content(替代文字、说明文字和描述)、meta(自定义字段)
--porcelain仅输出适合脚本解析的基本信息无需值(标志)
--fail-if-log-notifications执行期间添加日志通知时失败无需值(标志)
--process-failed仅处理失败的翻译无需值(标志)

示例

# Translate media item with ID 10
wp gatotranslate media 10 --user=admin
 
# Translate media items with IDs 10, 11, 12
wp gatotranslate media 10,11,12 --user=admin
 
# Translate media item with a specific provider for each language
wp gatotranslate media 10 --user=admin --language-providers='{"es":"chatgpt","fr":"deepl"}'
 
# Translate disabling specific languages
wp gatotranslate media 10 --user=admin --language-providers='{"de":"none","zh":"none"}'
 
# Translate only media title and slug
wp gatotranslate media 10 --user=admin --parts=properties
 
# Translate only media content (alt text, caption, and description) and meta
wp gatotranslate media 10 --user=admin --parts=content,meta
 
# Only update the entity relationships for the target language
wp gatotranslate media 10 --user=admin --tasks=translate-entity-relationships
 
# Re-run translations for previously failed media items/languages only
wp gatotranslate media 10,11,12 --user=admin --process-failed

wp gatotranslate menu

翻译菜单。

只有原始语言的菜单会被翻译。由于 Polylang 不存储菜单的语言信息,该信息通过已分配的菜单位置来确定。

仅在满足以下所有条件时才会触发菜单翻译:

  • 菜单已至少分配了一个菜单位置
  • 其位置均不属于翻译语言

用法

wp gatotranslate menu <ids> [options]

参数

参数说明
<ids>要翻译的菜单 ID 列表,用逗号或空格分隔

选项

选项说明可选值
--default-provider=<provider>默认翻译提供商chatgpt, claude, deepl, gemini, google_translate, deepseek, mistral, openrouter, self_hosted_llm
--language-providers=<providers>语言提供商映射的 JSON 字符串以语言代码为键,以提供商名称、"none"(禁用该语言)或 "default"(使用默认提供商)为值的 JSON 字符串
--porcelain仅输出适合脚本解析的基本信息无需值(标志)
--fail-if-log-notifications执行期间添加日志通知时失败无需值(标志)

示例

# Translate menu with ID 5
wp gatotranslate menu 5 --user=admin
 
# Translate menus with IDs 5, 6, and 7
wp gatotranslate menu 5,6,7 --user=admin
 
# Translate menu with a specific provider for each language
wp gatotranslate menu 5 --user=admin --language-providers='{"es":"chatgpt","fr":"deepl"}'
 
# Translate disabling specific languages
wp gatotranslate menu 5 --user=admin --language-providers='{"de":"none","zh":"none"}'

wp gatotranslate user

翻译用户描述。

用法

wp gatotranslate user <ids> [options]

参数

参数说明
<ids>要翻译的用户 ID 列表,用逗号或空格分隔

选项

选项说明可选值
--default-provider=<provider>默认翻译提供商chatgpt, claude, deepl, gemini, google_translate, deepseek, mistral, openrouter, self_hosted_llm
--language-providers=<providers>语言提供商映射的 JSON 字符串以语言代码为键,以提供商名称、"none"(禁用该语言)或 "default"(使用默认提供商)为值的 JSON 字符串
--porcelain仅输出适合脚本解析的基本信息无需值(标志)
--fail-if-log-notifications执行期间添加日志通知时失败无需值(标志)

示例

# Translate user with ID 1
wp gatotranslate user 1 --user=admin
 
# Translate users with IDs 1, 2, and 3
wp gatotranslate user 1,2,3 --user=admin
 
# Translate users with IDs 1 and 2
wp gatotranslate user "1 2" --user=admin
 
# Translate user using ChatGPT as default provider
wp gatotranslate user 1 --user=admin --default-provider=chatgpt
 
# Translate user with a specific provider for each language
wp gatotranslate user 1 --user=admin --language-providers='{"es":"chatgpt","fr":"deepl"}'
 
# Translate user disabling a specific language
wp gatotranslate user 1 --user=admin --language-providers='{"de":"none"}'