无法通过 WordPress API 批量获取多个主题的语言包

问题描述 投票:0回答:1

我正在尝试使用以下 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

 参数明确可用于插件,但找不到类似的主题参数。

问题:

有没有办法通过 WordPress API 批量检索多个主题的

language_packs

?或者我是否缺少一些参数或方法来获取主题的数据,类似于插件的工作方式?

wordpress themes wordpress-rest-api language-packs
1个回答
0
投票
没有办法做到这一点,但作为替代方案,您可以根据需要循环调用该 api 以及主题参数。这是示例代码供您参考。

$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' ]; } }
    
© www.soinside.com 2019 - 2024. All rights reserved.