2010-11-22 6 views
0

こんにちは私は、WordPressのテーマオプションを追加して、特定のカテゴリと単一画像テンプレートに適切なテンプレートを自動的に割り当てます。in_categoryでテーマオプションを使用する方法

私は、ユーザーが昏睡状態で区切られたカテゴリ番号を入力することができ、single.phpテンプレートを変更してそのカテゴリに1つの投稿があるが、テンプレートが選択されていないかどうかを確認しました。

<?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を)やってみてください。 1つの文字列のカンマ区切りリストですか、または各カテゴリは配列の別々の値ですか?

$ 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次のように動作します

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

+0

が実際にはそのだけのif文をスキップ機能していないことを傷つけたりする前に、私は再び探求しようとするでしょうもしますprint_rの出力はテンプレートに出力されていることです。値はこのようなテーマオプションに格納されています。 "3,4,5,6,7,8"はテキストとして入力されたばかりです – Adam

+0

改訂されたコードセグメントを含む編集された答え。 – aendrew

関連する問題