簡體   English   中英

數組php中的調用函數

[英]Call function in array php

完成編程的新手:)

我在擺弄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而不是返回,我得到類別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

嘗試這個:

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}';
}

如果您的am_get_cat_layout_ids()函數返回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}';

您所制作的是一個包含一個字符串的數組,該字符串具有逗號分隔的數字。 您要構建一個數字數組。

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()) {

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM