完成编程的新手:)
我正在摆弄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
答案 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()) {