在数组php中调用函数

时间:2011-11-07 12:17:37

标签: php arrays wordpress function

完成编程的新手:)

我正在摆弄WordPress主题并遇到障碍。如果我把它放在archive.php中,

<?php 

if (is_category(array( 9, 13, 24,)) {
 echo 'Light is GREEN';
  }else {
 echo 'Light is RED}';
 ?>

那部分工作正常,当我进入第9,13,24类时,我会为所有其他类别获得“光是绿色”和“光是红色”。

现在我有这个功能从主题选项获取类别的ID,我需要回应“光是绿色”

function am_get_cat_layout_ids()
{

                global $am_option;
                $catnumend = $am_option['main']['category_onecolumn_hidden']-1;
                for($i=0; $i<$catnumend; $i++)
                {

                    $value = $am_option['main']['category_onecolumn_'.$i].',';


                }

                return $value;
}

如果我回显$ value而不是return,我会得到类别ID,例如2,15,7,34,但是,如果我这样做:

  <?php 

if (is_category(array(am_get_cat_layout_ids())) {
 echo 'Light is GREEN';
  }else {
 echo 'Light is RED}';
 ?>

它不起作用。

可以采取哪些措施使其发挥作用?

谢谢你, Srik

3 个答案:

答案 0 :(得分:0)

试试这个:

function am_get_cat_layout_ids()
{
    global $am_option;
    $ret = array();
    $catnumend = $am_option['main']['category_onecolumn_hidden']-1;

    for($i=0; $i<$catnumend; $i++)
    {
            $ret[] = $am_option['main']['category_onecolumn_'.$i];
    }

    return $ret;
}

if (is_category(am_get_cat_layout_ids()) {
    echo 'Light is GREEN';
}else {
    echo 'Light is RED}';
}

答案 1 :(得分:0)

如果您的am_get_cat_layout_ids()函数返回2, 15, 7, 34,,那么您应该执行以下操作:

if (is_category(explode(', ',trim(am_get_cat_layout_ids(),','))) {
 echo 'Light is GREEN';
  }else {
 echo 'Light is RED}';

答案 2 :(得分:0)

你所做的是一个包含一个字符串的数组,该字符串以逗号分隔的数字。你想建立一个数字数组。

function am_get_cat_layout_ids()
{
    global $am_option;

    $ids = array(); // create array
    $catnumend = $am_option['main']['category_onecolumn_hidden']-1;

    for($i=0; $i<$catnumend; $i++)
    {
        $ids[] = $am_option['main']['category_onecolumn_'.$i]; // add value to array
    }
    return $ids; // return array
}

您的原始代码与此相同:

if (is_category(array( "9, 13, 24,")) {

虽然这个新代码等同于问题开头的代码:

if (is_category(am_get_cat_layout_ids()) {