我目前正在使用WP REST API v2,并设法以此获取所有帖子类型的列表
http://domain.com/wp-json/wp/v2/types
,然后设法获得我感兴趣的帖子类型
http://domain.com/wp-json/wp/v2/types/the-icons-update
如何获取所有帖子我已经尝试过使用
Q4312078q
,但是它返回一个空数组(我想它返回默认的帖子,并且在我的网站上,我尝试检索的自定义帖子类型中只有帖子。)
我如何注册帖子类型会出现问题吗?
http://domain.com/wp-json/wp/v2/posts?filter[post_type]=the-icons-update
对此的任何帮助都非常感谢。
#1 楼
只需将下一个参数添加到函数register_post_type中,它可以在'menu_position'参数之前。 'show_in_rest'=> true如果您使用的是插件来注册自己的帖子类型,则可以使用以下代码:
add_action( 'init', 'add_anuncios_to_json_api', 30 );
function add_anuncios_to_json_api(){
global $wp_post_types;
$wp_post_types['anuncio']->show_in_rest = true;
}
之后,您就可以从mydomain.com/wp-json/wp/v2/posttype_slug
列出您的帖子:mydomain.com/ wp-json / wp / v2 / anuncio
您还可以使用以下代码注册新的基础:
add_action( 'init', 'add_anuncios_to_json_api', 30 );
function add_anuncios_to_json_api(){
global $wp_post_types;
$wp_post_types['anuncio']->show_in_rest = true;
$wp_post_types['anuncio']->rest_base = 'clasi';
$wp_post_types['anuncio']->rest_controller_class = 'WP_REST_Posts_Controller';
}
只需将
anuncio
替换为您的帖子类型“ slug”和“ clasi”将是您的路线。 mydomain.com/wp-json/wp/v2/clasi #2 楼
要在版本2中显示自定义帖子类型,您需要在register_post_type函数参数中添加'show_in_rest' => true
,然后具有该自定义帖子类型的帖子将在端点上可用:wp-json / wp / v2 / your-custom-post-type 。来源:http://scottbolinger.com/custom-post-types-wp-api-v2/
#3 楼
好的,这是我完整的答案:-function prefix_register_post_type()
{
register_post_type(
'prefix_portfolio',
array(
'labels' => array(
'name' => __('Portfolio', 'text_domain'),
'singular_name' => __('Portfolio', 'text_domain'),
'menu_name' => __('Portfolio', 'text_domain'),
'name_admin_bar' => __('Portfolio Item', 'text_domain'),
'all_items' => __('All Items', 'text_domain'),
'add_new' => _x('Add New', 'prefix_portfolio', 'text_domain'),
'add_new_item' => __('Add New Item', 'text_domain'),
'edit_item' => __('Edit Item', 'text_domain'),
'new_item' => __('New Item', 'text_domain'),
'view_item' => __('View Item', 'text_domain'),
'search_items' => __('Search Items', 'text_domain'),
'not_found' => __('No items found.', 'text_domain'),
'not_found_in_trash' => __('No items found in Trash.', 'text_domain'),
'parent_item_colon' => __('Parent Items:', 'text_domain'),
),
'public' => true,
'menu_position' => 5,
'supports' => array(
'title',
'editor',
'thumbnail',
'excerpt',
'custom-fields',
),
'taxonomies' => array(
'prefix_portfolio_categories',
),
'has_archive' => true,
'rewrite' => array(
'slug' => 'portfolio',
),
)
);
}
add_action('init', 'prefix_register_post_type');
function prefix_register_taxonomy()
{
register_taxonomy(
'prefix_portfolio_categories',
array(
'prefix_portfolio',
),
array(
'labels' => array(
'name' => _x('Categories', 'prefix_portfolio', 'text_domain'),
'singular_name' => _x('Category', 'prefix_portfolio', 'text_domain'),
'menu_name' => __('Categories', 'text_domain'),
'all_items' => __('All Categories', 'text_domain'),
'edit_item' => __('Edit Category', 'text_domain'),
'view_item' => __('View Category', 'text_domain'),
'update_item' => __('Update Category', 'text_domain'),
'add_new_item' => __('Add New Category', 'text_domain'),
'new_item_name' => __('New Category Name', 'text_domain'),
'parent_item' => __('Parent Category', 'text_domain'),
'parent_item_colon' => __('Parent Category:', 'text_domain'),
'search_items' => __('Search Categories', 'text_domain'),
),
'show_admin_column' => true,
'hierarchical' => true,
'rewrite' => array(
'slug' => 'portfolio/category',
),
)
);
}
add_action('init', 'prefix_register_taxonomy', 0);
您还应该在注册自定义帖子时注册分类法。
之后,请求将是:
wp-json/wp/v2/posts/?taxonomy=prefix_portfolio_categories'&term=your-any-category
希望对您有所帮助:)
评论
感谢您为这一工作付出的一百万美元,但不幸的是,这也不起作用。我敢肯定我已经很接近了,但我不明白问题可能出在哪里。再次感谢你
–杰夫
2015年9月4日15:53
#4 楼
您应该使用以下命令:-http://domain.com/wp-json/wp/v2/posts?job-type=your-post-type
希望它起作用:)
评论
非常感谢您的答复,但是没有用:(
–杰夫
2015年9月4日在8:09
请注意,如果在注册自定义分类法时将query_var设置为false,则需要将参数更改为:wp-json / wp / v2 / posts /?taxonomy = job-type&term = manager(仅作为示例)
– dev
2015年9月4日在8:13
谢谢,但是也没有用。我如何注册自定义帖子类型会出现问题吗?我已经更新了问题,如果您可以看一看,我将不胜感激
–杰夫
2015年9月4日在8:38
是的,只是检查了更新的答案
– dev
2015年9月4日在9:22
这不再起作用。
–安迪·默瑟(Andy Mercer)
20年7月14日在17:09
评论
谢谢,这几乎解决了我的问题!现在,我从该特定帖子类型中获取了一些帖子,但并非所有帖子都出现并且它们的数据也不完整,例如,类别未列出,并且我还需要列出高级自定义字段(在WP REST API v1.2.3中我设法使ACF出现)。感谢您的协助
–杰夫
2015年9月8日于17:34