Loops 限制从WP#u查询或'返回的wordpress字段;获取';功能
希望限制WP查询的返回字段,以帮助加快服务器的响应速度并减少检索的数据量。对于我正在使用的查询,它最多只需要3个字段的数据,其余的通过循环中的ACF get_field_对象引入。我正在使用的其他函数,如get_posts或get_terms,都有字段选项,但仅限于少量内容,如'slug'only或'id=>slug' 我习惯于使用CakePHP进行开发,它可以选择指定要返回的每个字段,但该项目需要wordpress提供其他功能,因此我的能力非常有限Loops 限制从WP#u查询或'返回的wordpress字段;获取';功能,loops,slug,wordpress,Loops,Slug,Wordpress,希望限制WP查询的返回字段,以帮助加快服务器的响应速度并减少检索的数据量。对于我正在使用的查询,它最多只需要3个字段的数据,其余的通过循环中的ACF get_field_对象引入。我正在使用的其他函数,如get_posts或get_terms,都有字段选项,但仅限于少量内容,如'slug'only或'id=>slug' 我习惯于使用CakePHP进行开发,它可以选择指定要返回的每个字段,但该项目需要wordpress提供其他功能,因此我的能力非常有限 TL;DR需要加快从Wordpress获取帖
TL;DR需要加快从Wordpress获取帖子的速度,因为WP\u查询将返回对象,所以速度非常快。但是,如果您真的想限制返回的内容,可以使用
WP\u查询
来限制WP\u查询中的字段,特别是当我想要对字段进行json\u编码时。$return
变量包含我的帖子数组,其中只有$fields
数组中列出的字段
$query = new WP_Query( array( 'post_type' => 'my_custom_type' ) );
$return = array();
$fields = array('post_title', 'ID'); //list of fields I want in $return
$posts = $query->get_posts();
foreach($posts as $post) {
$newPost = array();
foreach($fields as $field) {
$newPost[$field] = $post->$field;
}
$return[] = $newPost;
}
我在查询中使用了fields参数,并在此查询中运行get posts。 例如:在我的例子中,我只需要获取多个类别的帖子ID,因此我创建了如下查询:
$the_query = new WP_Query( array(
'ignore_sticky_posts' => 1,
'posts_per_page' => -1,
'cat' => '2,6,7' ,
'fields' => 'ids',
'post_type' => 'post',
'post_status' => 'publish',
)
);
在此查询上运行get_帖子:
$posts = $the_query->get_posts();
$posts将仅获取特定类别posts的ID
或者也可以通过标准和流行的方式完成,即通过运行have_posts的循环:
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
$post_id_array[] = get_the_ID();
}
}
这两种方法有助于加快服务器的响应速度并减少检索到的数据量我不知道这会有多大帮助,但下面是我如何从CPT中获得扁平阵列。这不是最快的,但可能更糟。我使用ACF获取自定义字段,但您可以只获取slug,也可以获取多个字段:
// Query Jobs Args
$query_args = array(
'post_type' => 'job',
'posts_per_page' => -1,
'fields' => 'ids'
);
// Get Jobs Query
$query = new WP_Query($query_args);
// Loop Persistent Vars
$job_ids = array();
// Loop Over Jobs
foreach($query->posts as $post_id) {
$job_ids[] = get_field('job_id', $post_id);
}
// Do stuff with flattened array of job ids
田地是什么?它们都是自定义的吗?我想查看的字段是默认字段,如“post_content”、“guid”、“post_modified”等。我可能会问与您上面引用的相同的问题,但为他提供的答案与我的需要不符。他的回答提供了一种在WP_查询返回“title”和“description”后访问它们的方法。另一方面,我希望明确地删除查询中返回的所有其他数据,而不是选择少数数据。目的是减少发送回的数据量。我已经看过了,不幸的是,它只提供了3个选项,比我需要检索的字段少了1到2个字段。