在 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' ) );
*这个问题可能比较长,希望大家多多包涵*
正在尝试将地址动态分组到特定城市下。
布局示例:
所以根据上面的示例布局,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' ) );