在 WordPress 中操作 WP_Query 内的 PHP 变量

Manipulating a PHP variable inside WP_Query in WordPress

*这个问题可能比较长,希望大家多多包涵*

正在尝试将地址动态分组到特定城市下。

布局示例:

所以根据上面的示例布局,Cupertino 属于 CA,因此显示在它下面。

在ACF组内选择了城市。

我尝试通过以下代码查询城市:

                    <?php 
                        $counter = 0; 
                        $cityArray = array();
                    ?>

                    <?php $loop = new WP_Query( array( 'posts_per_page' => -1, 'post_type' => 'branches_locations', 'orderby'=>'post_id', 'order'=>'ASC' ) ); ?>

                        <?php while( $loop->have_posts() ) : $loop->the_post(); ?>
                        <?php   
                            $city   = get_field('city');
                            if(!in_array($city, $cityArray))
                            {   
                                $cityArray[$counter] = get_field('city');
                                $counter++;
                            }
                        ?>

                        <?php endwhile; ?>
                        <?php wp_reset_postdata(); ?>

                        <?php  
                        foreach ($cityArray as $i) 
                        {
                                $loopCity = $i;

                        ?>

<?php echo "city before loop is $i"; ?>
                            <?php $loop = new WP_Query( array( 'posts_per_page' => -1, 'post_type' => 'branches_locations', 'meta_key' => 'city', 'meta_value'=> '$i', 'order' => 'ASC' ) ); ?>

                            <?php echo "city after loop is $i"; ?>

$i 变量的值显示如下例所示:

然而,WP_Query 似乎无法识别变量 $i

如果我使用以下内容:

<?php $loop = new WP_Query( array( 'posts_per_page' => -1, 'post_type' => 'branches_locations', 'meta_key' => 'city', 'meta_value'=> 'Los Angeles', 'order' => 'ASC' ) ); ?>

而不是:

<?php $loop = new WP_Query( array( 'posts_per_page' => -1, 'post_type' => 'branches_locations', 'meta_key' => 'city', 'meta_value'=> '$i', 'order' => 'ASC' ) ); ?>

查询输出洛杉矶以下所有地址

我做错了什么?

您似乎将变量作为字符串传递。

尝试:

$loop = new WP_Query( array( 'posts_per_page' => -1, 'post_type' => 'branches_locations', 'meta_key' => 'city', 'meta_value'=> $i, 'order' => 'ASC' ) );