get_terms WP_Error对象 ( [错误] => 数组 ( [invalid_taxonomy] => 数组 ( [0] => 无效分类。 ) )[error_data]



如何求解get_terms函数WP_Error对象? 我在coustom-post-type.php文件中注册了自定义分类tax_alone_event。 并包含在functions.php文件中。 这是我的代码

function get__terms_list() {
$terms = get_terms('tax_alone_event');
return $terms ;
} //End get_terms_list()..
print_r(get__terms_list());

我在coustom-post-type.php文件中注册自定义帖子和自定义分类代码

function Alone_setup_post_type_project() {
// event custom post and tax 
$alone_event_args = array(
'labels'             => array(
'name'               => _x( 'Event', 'post type general name', 'alonefoundation' ),
'add_new'            => _x( 'Add New', 'Event', 'alonefoundation' ),
'add_new_item'       => __( 'Add New Event', 'alonefoundation' ),
'new_item'           => __( 'New Event', 'alonefoundation' ),
'edit_item'          => __( 'Edit Event', 'alonefoundation' ),
'view_item'          => __( 'View Event', 'alonefoundation' ),
'all_items'          => __( 'All Event', 'alonefoundation' ),
),
'description'        => __( 'Description.', 'alonefoundation' ),
'public'             => true,
'publicly_queryable' => true,
'show_ui'            => true,
'show_in_menu'       => true,
'query_var'          => true,
'rewrite'            => array( 'slug' => 'event' ),
'capability_type'    => 'post',
'has_archive'        => true,
'hierarchical'       => true,
'taxonomies'            => array('tax_alone_event'),
'menu_position'      => null,
'supports'           => array( 'title', 'editor', 'thumbnail')
);
register_post_type( 'alone-event', $alone_event_args );
$alone_event_tax = array(
'label' => __( 'Category' ),
'rewrite' => array( 'slug' => 'event_tax' ),
'hierarchical' => true,
) ;
register_taxonomy( 'tax_alone_event', array('alone-event'), $alone_event_tax );
}
add_action( 'init', 'Alone_setup_post_type_project');

您可以通过两种方式消除错误

  1. 不要用init钩子,直接调用Alone_setup_post_type_project();
  2. get_terms函数也与初始化钩一起使用

因为您正在做的是在WordPress向系统注册您的帖子类型和分类之前使用get_terms功能,因此无法找到它。

get_terms()函数只会显示默认WordPress taxonomies,除非您将其挂接到 init。

function get__terms_list() {
$terms = get_terms('tax_alone_event',array(
'hide_empty' => false
));
print_r($terms);
} //End get_terms_list()..
//print_r(get__terms_list());
add_action('init','get__terms_list');

输出:

Array ( 
[0] => WP_Term Object ( 
[term_id] => 28 
[name] => Custom Taxonomy 
[slug] => custom-taxonomy 
[term_group] => 0 
[term_taxonomy_id] => 28 
[taxonomy] => tax_alone_event 
[description] => 
[parent] => 0 
[count] => 0 
[filter] => raw )
)

我把你的代码复制到自己身上,效果很好。
您在哪个文件中有此部分?

function get__terms_list() {
$terms = get_terms('tax_alone_event');
return $terms ;
} //End get_terms_list()..
print_r(get__terms_list());

print_r(get__terms_list());应该在页面.php、页脚.php等文件中。

print_r(get_taxonomies());放在print_r(get__terms_list());之前,以查看您的分类是否已注册。

您应该通过 4.5.0 - https://developer.wordpress.org/reference/functions/get_terms/$args数组中的"分类法"参数传递分类法。

function get__terms_list() {
$terms = get_terms( array( 'taxonomy' => 'tax_alone_event' ) );
return $terms ;
}
print_r(get__terms_list());

最新更新