将变量存储在数组中 - PHP

时间:2013-01-30 16:42:11

标签: php arrays wordpress function variables

我的网站上有一些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,但它崩溃了我的网站。

非常感谢任何指示。

3 个答案:

答案 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;
}
?>