因此,我想检索一个包含meta\\u键“\\u blocks”中帖子的列表,其中有一个多维数组,其中包含名为left、right、top等的“area”。在这些数组中,分配了post\\u id:s。如下所示:
Array
(
[left] => Array
(
[0] => 450
[1] => 452
[2] => 460
[3] => 451
[4] => 454
[5] => 449
[6] => 455
)
[right] => Array
(
[0] => 460
[1] => 455
[2] => 454
[3] => 453
)
)
查询现在如下所示。。我现在有点困惑如何存档这个。。
在此之前,我正在运行一个foreach,正如您在$区域上看到的$区域。和$type_areas
保持蚀刻柱类型:s。
$args = array(
\'post_type\' => $type_areas[$area[\'area\']],
\'posts_per_page\' => \'-1\',
\'meta_key\' => \'_blocks\',
\'meta_query\' => array(
array(
\'key\' => \'left\',
\'value\' => \'450\', // just testing...
\'compare\' => \'IN\',
)
)
);
$query = new WP_Query( $args );
while ( $query->have_posts() ) : $query->the_post();
$output .= \'<li data-id="\'. $query->post->ID .\'" data-area="\'. $area[\'area\'] .\'"><p>\'. get_the_title() .\'</p><span>\'. $query->post->post_type .\'</span></li>\';
endwhile;
UPDATE
因此,我以一个简单的SQL查询结束了upp:
$sql = \'SELECT post_id FROM kwido_postmeta WHERE meta_value REGEXP \\\'"\'. $area[\'area\'] .\'";a:[[:digit:]]+:{[^}]*"\'. $mainpost->ID .\'"\\\'\';
$results = $wpdb->get_results( $sql, ARRAY_A );
它使用regex来查看当前的post\\u id和区域,如果找到,则获取post\\u id。。
$post_ids = array();
foreach ( $results as $result ) {
$post_ids[] = $result[\'post_id\'];
}
使用post\\u id:s进行查询
post__in
接受数组的参数。
$args = array(
\'post_type\' => $type_areas[$area[\'area\']],
\'posts_per_page\' => \'-1\',
\'post__not_in\' => $post_ids
);
$query = new WP_Query( $args );
最合适的回答,由SO网友:Pontus Abrahamsson 整理而成
Solved
因此,我以一个简单的SQL查询结束了upp:
$sql = \'SELECT post_id FROM kwido_postmeta WHERE meta_value REGEXP \\\'"\'. $area[\'area\'] .\'";a:[[:digit:]]+:{[^}]*"\'. $mainpost->ID .\'"\\\'\';
$results = $wpdb->get_results( $sql, ARRAY_A );
它使用regex来查看当前的post\\u id和区域,如果找到,则获取post\\u id。。
$post_ids = array();
foreach ( $results as $result ) {
$post_ids[] = $result[\'post_id\'];
}
使用post\\u id:s进行查询
post__in
接受数组的参数。
$args = array(
\'post_type\' => $type_areas[$area[\'area\']],
\'posts_per_page\' => \'-1\',
\'post__not_in\' => $post_ids
);
$query = new WP_Query( $args );