我正在尝试使用修改分类术语页面上的主查询pre_get_posts
行动和post__in
领域要将ID添加到post\\uu in字段,我必须运行一个查询。调用此查询时,我遇到了“致命错误:允许的内存大小…”问题如果在模板文件中调用相同的查询,效果会很好。我想我应该用一些不同的方法来实现我的目标。如何在内部运行查询pre_get_posts
?我只想修改主查询,而不是替换为自定义查询,或创建自定义页面。
function custom_loops($query) {
if (is_tax( \'service_photo_location\' )){
$ids = get_nearby_partners_by_area(50000, \'service_photo\');
$query->set( \'post__in\', $ids);
$query->set( \'posts_per_page\', 10);
$query->set( \'meta_key\', \'custom_meta_partner_subscription_level\');
$query->set( \'orderby\', \'meta_value title\');
$query->set( \'order\', \'ASC\');
}
remove_action( \'pre_get_posts\', \'custom_loops\' );
}
add_action(\'pre_get_posts\', \'custom_loops\');
function get_nearby_partners_by_area($distance, $post_type){
$post_ids = array();
$args = array( \'posts_per_page\' => 10, \'post_type\'=> \'wedding_dress\', \'post_status\' => \'publish\', \'fields\' => \'ids\' );
$all_partners = get_posts( $args ); //at tis point i get memory error
foreach ( $all_partners as $post ) : setup_postdata( $post );
// this point I calculate some things
$post_ids = $post->ID;
endforeach;
wp_reset_postdata();
return $post_ids;
}