使用当前版本的“WP API”(JSON API插件)检索术语,有一种简单的检索术语的方法:
GET /taxonomies/<taxonomy>/terms
负责的方法是
get_taxonomy_terms( $taxonomy )
在
plugins core.
你必须检查一下is_wp_error()
在返回值上,检查在调用自己的调用时是否存在分类法。
内部构件
当我们谈论一个新的核心API当前作为插件运行时,它紧贴核心本身并使用
$terms = get_terms( $taxonomy, $args );
检索给定分类法的术语/分类单元(类别、后标记等)。该调用的唯一默认参数是
hide_empty => true
.
过滤返回的术语#1)
查看
core function internals, 您将找到一个筛选器:
$args = apply_filters( \'get_terms_args\', $args, $taxonomies );
因此,只需对该过滤器应用回调。小心不要拦截其他呼叫。
<?php
/** Plugin Name: (#163923) Alter term fetching args for the WP API/JSON plugin */
add_filter( \'get_terms_args\', \'remote_parent_terms_from_json_response\', 10, 2 );
function remote_parent_terms_from_json_response( Array $args, Array $taxonomies )
{
// Do not impact subsequent calls and remove the callback. Single running filter cb.
if ( /* some case */ )
{
remove_filter( current_filter(), __FUNCTION__ );
return wp_parse_args( array(
// alter args in here
), $args );
}
// default case
return $args;
}
在调用DB之后立即使用
get_terms()
, 函数循环遍历所有获取的术语,并使用
prepare_taxonomy_term( $term )
方法此方法的最末端有一个过滤器:
return apply_filters( \'json_prepare_term\', $data, $term, $context );
你可以直接回来
FALSE
或
NULL
如果分类学术语不适用(例如,作为父项
parent => 0
设置),然后运行
array_filter( $terms )
在返回的数据上删除所有未设置、错误或无效的术语。
这可能是您希望在原型制作过程中使用的更简单的解决方案。当您首先从数据库中检索术语,然后将其删除时,它也是一种更为数据库密集的解决方案,这会给您的请求增加额外的开销。