我正在尝试使用以下 WordPress 主题 API 端点批量获取多个主题的语言包:
https://api.wordpress.org/themes/info/1.1/?action=query_themes&request[fields][language_packs]=1
但是,这并不会按预期返回 language_packs
字段。有趣的是,相同的结构非常适合使用 WordPress 插件 API 的插件:
https://api.wordpress.org/plugins/info/1.2/?action=query_plugins&request[fields][language_packs]=1
我知道以下端点可以获取单个主题的翻译:
https://api.wordpress.org/translations/themes/1.0/?slug={slug}&version={theme-version}
但是,我需要批量获取多个主题的语言包,而上面的 URL 仅支持每个请求单个主题。我检查了 WordPress 代码,发现
language_packs
参数明确可用于插件,但找不到类似的主题参数。问题:
language_packs
?或者我是否缺少一些参数或方法来获取主题的数据,类似于插件的工作方式?
$themes = json_decode( file_get_contents( 'https://api.wordpress.org/themes/info/1.1/?action=query_themes' ), true );
$language_packs = [];
foreach ( $themes['themes'] as $theme ) {
$slug = $theme['slug'];
$version = $theme['version'];
$translation_info = json_decode( file_get_contents( "https://api.wordpress.org/translations/themes/1.0/?slug={$slug}&version={$version}" ), true );
if ( isset( $translation_info['translations'] ) ) {
$language_packs[$slug] = $translation_info[ 'translations' ];
}
}