Xia*_*nqi 6 wordpress wordpress-rest-api
我是v2的新手,我长时间使用v1,目前升级到v2,我试图让所有条款都属于特定的自定义分类.
在v1中,我可以这样做以获得术语/分类/ location_category/terms
但在v2中我尝试/分类/条款它返回json错误"代码":"rest_no_route","消息":"找不到匹配URL和请求方法的路由","数据":{"状态":404}}
如果只是/ taxonomies/location_category /它没有显示任何属于分类法的术语.
我在谷歌搜索问题几个小时没有显示任何结果,任何人都可以帮助,谢谢
Xia*_*nqi 10
最后在这里写自定义代码
将函数添加到functions.php中
class all_terms
{
public function __construct()
{
$version = '2';
$namespace = 'wp/v' . $version;
$base = 'all-terms';
register_rest_route($namespace, '/' . $base, array(
'methods' => 'GET',
'callback' => array($this, 'get_all_terms'),
));
}
public function get_all_terms($object)
{
$return = array();
// $return['categories'] = get_terms('category');
// $return['tags'] = get_terms('post_tag');
// Get taxonomies
$args = array(
'public' => true,
'_builtin' => false
);
$output = 'names'; // or objects
$operator = 'and'; // 'and' or 'or'
$taxonomies = get_taxonomies($args, $output, $operator);
foreach ($taxonomies as $key => $taxonomy_name) {
if($taxonomy_name = $_GET['term']){
$return = get_terms($taxonomy_name);
}
}
return new WP_REST_Response($return, 200);
}
}
add_action('rest_api_init', function () {
$all_terms = new all_terms;
});
Run Code Online (Sandbox Code Playgroud)
并输入网址 http://youdomain.com/wp-json/wp/v2/all-terms?term=you_taxonomy
所以term = you_taxonomy,将获得属于job_category的术语.
分类术语简称为:
https://yoursite.com/wp-json/wp/v2/the-taxonomy-slug
Run Code Online (Sandbox Code Playgroud)
例如,要回答您的问题:
https://yoursite.com/wp-json/wp/v2/location_category
Run Code Online (Sandbox Code Playgroud)
从终端:
curl -X GET -i http://www.example.com/wp-json/wp/v2/location_category
Run Code Online (Sandbox Code Playgroud)
对于自定义分类,确保你设置“show_in_rest”的说法是正确的(默认为false)在您的register_taxonomy()通话。
register_taxonomy()您还可以在该调用中设置“ rest_base”参数(/location_category/在您的示例中,默认名称为分类名称)。
show_in_rest注册分类法时使用该标志。就这样。
列出所有可用的分类法
\n所有默认分类法均可通过 REST API 获得。使用以下端点获取所有可用分类法的列表:
\nhttps://exmaple.org/wp-json/wp/v2/taxonomies\nRun Code Online (Sandbox Code Playgroud)\n它会告诉您标签中每个分类的正确端点wp:items,例如
..., "wp:items":[{"href":"https://example.com/wp-json/wp/v2/categories"}], ...\n..., "wp:items":[{"href":"https://example.com/wp-json/wp/v2/tags"}], ...\nRun Code Online (Sandbox Code Playgroud)\n向 REST 端点添加新分类法
\n如果您的分类未在此分类概述中列出,您需要在调用 时启用 REST 端点register_taxonomy。您可以通过添加参数来做到这一点\'show_in_rest\' => true:
https://exmaple.org/wp-json/wp/v2/taxonomies\nRun Code Online (Sandbox Code Playgroud)\n注意:如果您不使用show_in_rest,则分类法在块编辑器(“古腾堡”)中不可用。
我强烈建议不要创建自定义 REST 端点来重复内置逻辑。
\n即 不要这样做或这个
| 归档时间: |
|
| 查看次数: |
4804 次 |
| 最近记录: |