私は in_category(array)
をThe Loop内で使用して、投稿がディスカッションカテゴリに分類されているかどうかを検出します(または2つのスラッグのうちの1つがあります)。これはsingle.php
で美しく動作しますが、page.php
の中で使われたときに評価されることすらありませんか?
FWIW、これが私のコードです:
<?php if ( in_category( array( 'Discussions', 'discussion', 'discussion-article' ) )) :?>
<p id="discussions-prepended"><em>This is an article from our Discussions series - read more in the <a href="/discussions">Discussions section</a>.</em></p>
<?php endif;?>
混乱したpage.phpインスタンスで、私も試してみました
<?php elseif:?>
<p>This post does not meet the category criteria.</p>
<?php endif;?>
しかし、それはコードが評価されていないと信じるように私を導いていることも示していません。どちらの場合も、このコードスニペットは<?php the_content(''); ?>
(single.phpのthe_content()
)の直前に挿入されました。それは評価されないか、page.phpに現れません。意図的な行動ですか、それとも間違っているのでしょうか。
プラグインまたはカスタムコードを使用して機能を追加していない限り、PagesはCategoriesに配置されません。ページは、親ページと子ページで構成されています。 in_category()がpage.phpで動作しないのはこのためです。
Functions.phpの次のコードはPagesにカテゴリを追加します。
/**
* Add categories to Pages.
* from http://shibashake.com/wordpress-theme/add-tags-and-categories-to-your-wordpress-page
*/
function add_custom_tags_box() {
add_meta_box( 'categorydiv', __('Categories'), 'post_categories_meta_box',
'page', 'side', 'low');
register_taxonomy_for_object_type('category', 'page');
}
お役に立てれば。