php 我怎么能得到嵌套的keys值内 meta_query WordPress的?

1yjd4xko  于 12个月前  发布在  PHP
关注(0)|答案(1)|浏览(61)

我有一个 meta_key 'review_for_post',其中包括'review_id'作为数组键,但我如何才能在meta_query中获得它的值

'meta_query'     => array(
            array(
                'key'     => 'reviewer_for_post[reviewer_id]',
                'value'   => $user_editor->ID,
                'compare' => '='
            ),
        ),

我想比较[reviewer_id](在'reviewer_for_post'键内)值与$user_editor->ID值

g2ieeal7

g2ieeal71#

AFAIK SQL不支持转换为数组或比较数组中的值(请参见this question)。你可以做的是用SQL得到尽可能窄的结果,然后用PHP进一步缩小范围(未经测试):

$query = new WP_Query( array(
    'meta_query' => array( array(
        'key'     => 'reviewer_for_post',
        'compare' => 'EXISTS',
    ) ),
);

foreach ( $query->posts as $i => $post ) {
    $reviewer = get_post_meta( $post->ID, 'reviewer_for_post', true );

    if ( is_array( $reviewer ) && ! empty( $reviewer['reviewer_id'] ) && 5 === $reviewer['reviewer_id'] ) {
        continue;
    }

    unset( $query->posts[ $i ] );
}

您也可以使用LIKE比较,但正如在另一个问题中提到的那样,这是不稳定的,容易出现不稳定。

相关问题