高级WP-CLI 命令
WP-CLI 命令
以下 WP-CLI 命令可用于翻译自定义文章、分类法术语(标签和分类目录)、媒体项目、菜单和用户。
WP-CLI 命令默认在没有登录用户的情况下运行。为了拥有创建翻译条目的适当权限,您必须通过 --user 选项以用户上下文运行命令:
wp gatotranslate post 123 --user=adminwp 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-failedwp 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-failedwp 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-failedwp 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"}'Prev
Next