如何在in_category中使用主题选项

时间:2010-11-22 23:03:42

标签: wordpress wordpress-theming

您好我想在wordpress中添加一个主题选项,以自动将适当的模板分配给某些类别和单个图像模板。

我建立了我的主题选项,用户可以输入用昏迷分隔的类别编号,我修改了single.php模板以检查单个帖子是否属于该类别但是模板没有被拾取。

<?php
$catArr = get_option('scp_gallery_cats');

if (in_category( array($catArr)))
{
    include (TEMPLATEPATH . '/single-image.php');
}
else { 
    include (TEMPLATEPATH . '/single-other.php');
}
?>

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

<?php
global $options;
global $post;
ob_start();
$catArr = print_r(get_option('scp_gallery_cats'),false);
ob_end_clean();
if (in_category('1')) {
  include(TEMPLATEPATH.'/single-image.php.php');
} elseif (in_category (array(($catArr))){
  include(TEMPLATEPATH.'/single_other.php.php');
} else {
  include(TEMPLATEPATH.'/single_default.php');
}
?>

答案 1 :(得分:0)

尝试做一个print_r($ catArr);是一个字符串的逗号分隔列表,或者每个类别是数组中的单独值?

如果$ catArr实际上是一个字符串而不是数组,那么你必须做类似的事情:

$catArr = explode(",", $catArr);

鉴于以下评论,我认为您必须先将值分解为数组;尝试以下代码:

<?php
$catArr = get_option('scp_gallery_cats');
$catArr = explode(",", $catArr); //break the string into array keys!
if (in_category($catArr))
{
    include (TEMPLATEPATH . '/single-image.php');
}
else { 
    include (TEMPLATEPATH . '/single-other.php');
}
?>

希望这有帮助!