【发布时间】:2021-11-01 00:51:44
【问题描述】:
如何在 foreach 循环中获取特定的帖子数据? (仅以标题为例)
这是我的 PHP(返回所有帖子数据):
function myspace_get_posts_by_tag(WP_REST_Request $request) {
$slug = $request['slug'];
$page = $request['page'];
$term = get_term_by('slug', $slug, 'post_tag');
$posts_per_page = 1;
$args = array(
'tag__in' => $term->term_id,
'posts_per_page' => $posts_per_page,
'paged' => $page,
'orderby' => 'date',
'order' => 'desc',
);
$query = new WP_Query( $args );
$max_pages = $query->max_num_pages;
$total = $query->found_posts;
$posts = $query->posts;
$controller = new WP_REST_Posts_Controller('post');
foreach ( $posts as $post ) {
$response = $controller->prepare_item_for_response( $post, $request );
$data[] = $controller->prepare_response_for_collection( $response );
}
$response = new WP_REST_Response($data, 200);
$response->header( 'X-WP-Total', $total );
$response->header( 'X-WP-TotalPages', $max_pages );
return $response;
}
为了举例,我删减了一些代码。
【问题讨论】:
-
$post->post_title 不工作吗? (在 foreach 循环中)
-
是的,它有效:
$data["posts"][] = array( "id" => $post->ID, "title" => $post->post_title );摆脱://$response = $controller->prepare_item_for_response($post, $request); //$data[] = $controller->prepare_response_for_collection($response) ? -
酷。如果有帮助,我可以将其添加为您批准的答案吗?
-
是的,你可以添加它
-
很好,已添加,如果您能接受,我将不胜感激。
标签: php wordpress wordpress-theming custom-wordpress-pages wordpress-rest-api