我想要创建一个跨平台的应用程序使用rest的网站(zoetalentsolutions.com)。该网站在WordPress,并有自定义的帖子类型,字段和自定义查询.
这个应用程序不会有任何用户。
我想要的是在REST中获得自定义post类型(在我的例子中是: courses) &需要运行自定义查询(自定义元查询)。
所以我需要一点指导:
如果能提供任何帮助,我们将不胜感激。我不期待一个彻底的,但一个细节的步骤和简短将是有帮助的。我认为第二个问题需要单独提出来,但我只需要一个简短的概念。
谢谢。
发布于 2020-10-20 19:16:30
自己回答问题。我希望这会对一些人有所帮助。
创建REST
如果要创建新的自定义post类型,请确保在参数数组中将此选项设置为true:
show_in_rest' => true,如果您的自定义文章来自主题或插件,并且希望为其启用rest-api,则将此代码添加到您的子主题functions.php中。
/**
* Add REST API support to an already registered post type.
*/
add_filter( 'register_post_type_args', 'my_post_type_args', 10, 2 );
function my_post_type_args( $args, $post_type ) {
if ( 'course' === $post_type ) {
$args['show_in_rest'] = true;
// Optionally customize the rest_base or rest_controller_class
$args['rest_base'] = 'course';
$args['rest_controller_class'] = 'WP_REST_Posts_Controller';
}
return $args;
}假设您想要运行一些wp-查询,并且需要发送一个自定义参数&从rest-API访问该查询。
add_action('rest_api_init', function () {
register_rest_route( 'namespace/v2', 'events/(?P\d+)',array(
'methods' => 'GET',
'callback' => 'get_events_from_id'
));
});
//Now create a function to return your custom query results
function get_events_from_id($request){
$id = $request['id'];
// Custom WP query query
$args_query = array(
'post_type' => array('events'),
'order' => 'DESC',
);
$query = new WP_Query( $args_query );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
$data = //do your stuff like
}
} else {
}
return $data;
wp_reset_postdata();
}https://wordpress.stackexchange.com/questions/375607
复制相似问题