我的网站上有一些PHP,其中包含以下代码部分:
'choices' => array ('london' => 'London','paris' => 'Paris',),
目前此列表是静态的 - 我手动添加但是我想动态生成列表。
我正在使用以下代码从WordPress动态创建数组&存储在变量中:
function locations() {
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'post_type' => 'location'));
if (have_posts()) :
while (have_posts()) : the_post();
$locations = "'\'get_the_slug()'\' => '\'get_the_title()'\',";
endwhile;
endif;
wp_reset_query();
$locations_list = "array (".$locations."),";
return $locations_list; // final variable
}
现在,这就是我被困的地方: - )
我现在如何将$locations_list
分配给'choices'
?
我尝试了'choices' => $locations_list
,但它崩溃了我的网站。
非常感谢任何指示。
答案 0 :(得分:2)
呃...哇?
$locations_list = array();
query_posts(...);
while(have_posts()) {
the_post();
$locations_list[get_the_slug()] = get_the_title();
}
wp_reset_query();
return $locations_list;
我不知道你在哪里读到你可以从一个字符串构建变量,但是......你不能(eval
除外)所以只需阅读array
文档并从那里开始
答案 1 :(得分:1)
请尝试以下操作: -
function locations() {
query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'post_type' => 'location'));
$locations = array();
if (have_posts()) :
while (have_posts()) : the_post();
$locations[get_the_slug()] = get_the_title();
endwhile;
endif;
wp_reset_query();
return $locations; // final variable
}
答案 2 :(得分:1)
你可以使用它;
<?php
function locations() {
$locations = array();
query_posts("orderby=date&order=DESC&post_type=location");
if (have_posts()) {
while (have_posts()) {
the_post();
$locations[] = get_the_slug() ."#". get_the_title();
}
}
wp_reset_query();
return $locations;
}
// using
$locations = locations();
foreach ($locations as $location) {
list($slug, $title) =@ explode("#", $location, 2);
echo $slug, $title;
}
?>