だから私はarchive.phpテンプレートにif/elseステートメントをやろうとしています。 WPスマートアーカイブをリロードしてアーカイブを設定しています(http://wordpress.org/extend/plugins/smart-archives-reloaded/)
私のarchive.phpからのコードは以下の通りです:
<?php
if (in_category('166')) { include 'archive-blog.php';
}
else {
echo('foo');
}
?>
カテゴリ番号に基づいてarchive.phpに特定のテンプレートを含めるようにしようとしています。しかし、このコードは、たとえ私がブログではないカテゴリアーカイブをクリックしたとしても、アーカイブブログテンプレートを取得します。
これが正しく行われていないのではないかと思っています - in_categoryはアーカイブページでは機能しませんか?私は同様の設定をしていて、single.phpをカテゴリに基づいて異なるインクルードテンプレートに向けています。
ありがとうございます。
更新
私はまたis_categoryを使用しようとしました、そしてそれは完全に私の最初の条件を無視してそしてちょうどどんなカテゴリーのためにfooをエコーしているようです。
<?php
if (is_category('166')) { include 'archive-blog.php';
}
else {
echo('foo');
}
?>
私が話していることへのリンク:(右側のサイドバーのアーカイブに入ります)
http://www.metropoliscreative.com/talent-analytics/w/?cat=166
http://www.metropoliscreative.com/talent-analytics/w/?cat=3
また、クライアントサーバーにはmod-rewriteがないため、パーマリンクを使用していません。
メモリが機能する場合、in_category()はループ内で使用され、現在の投稿がその特定のカテゴリにあるときにtrueを返します。
あなたはおそらくis_category(166)のためです。
あるいは、WordPressがそのカテゴリに使用することを認識できるように、単にファイルに名前を付けることもできます。 Codex に従って、WordPressはあなたのカテゴリーを表示するために以下のファイルを(この順番で)探します:
そのため、category-166.php
という名前のテンプレートファイルを作成した場合、WordPressはそのファイルを使用してカテゴリ166を表示します。
あなたはほとんどそこにいないそのin_category( '166')そのis_category( '166')違いは:
<?php
$post = $wp_query- >post;
if ( in_category('166') ) {
include(TEMPLATEPATH . '/archive-blog.php’);
} else {
echo('foo');
} ? >
それはあなたが探しているものですか?
代わりにis_category()
を試してください。
例です。カテゴリ12 OR 13に入っているか確認してください
<?php if ( is_category('12') || is_category('13')) { ?>
TEST
<?php } ?>