2010-11-22 49 views
0

嗨我想在wordpress中添加一個主題選項,以自動將適當的模板分配給某些類別和單個圖像模板。如何在in_category中使用主題選項

我有我的主題選項,用戶可以輸入用彗星分隔的類別編號,我修改了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'); 
} 
?> 

任何幫助,將不勝感激

回答

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

希望這有助於!

+0

嗨Aendrew,感謝這麼多,在print_r的工作方式如下 唯一的問題是print_r的輸出正在輸出到模板之前 – Adam 2010-11-25 17:12:52

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'); 
} 
?> 
相關問題