私の現在のテーマは、どのカテゴリーにあるかに基づいて配列項目を持つことができるポートフォリオセクションを持っています。私の問題は、私がポートフォリオセクションに入れたいページがいくつかあるということです。カテゴリを個々のページにのみ投稿するように割り当てます。この問題を回避する方法やプラグインはありますか?
これが私のポートフォリオのカテゴリを呼び出すことを私が信じるいくつかのコードです:php:
<?php if(is_category() && in_category($current_id) || post_is_in_descendant_category($current_id)){?>
<h1><?php single_cat_title(); ?></h1>
<ul class="portfolioCategs">
<li><a href="<?php echo get_category_link(get_option('boldy_portfolio'))?>">All projects</a></li>
<?php
$categories = get_categories('hide_empty=1&child_of='.$categs);
foreach ($categories as $cat) {
echo ('<li><a href="');
echo (get_category_link($cat->cat_ID).'">'.$cat->cat_name.'</a></li>');
}
?>
</ul>
<?php } ?>
<div style="clear:both"></div>
<div class="gallery">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="portfolioItem">
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<a href="<?php echo get_thumb_urlfull($post) ?>" rel="prettyPhoto" title="<?php the_title();?>"><?php the_post_thumbnail(); ?></a>
<p><?php the_excerpt() ?></p>
</div>
<?php endwhile; ?>
ありがとうニック。
カテゴリは投稿に適用される分類法です。ページは投稿ではありません。ページはページです。
コンテンツにカテゴリ分類を使用する必要がある場合は、いくつかの選択肢があります。
静的ページのカテゴリ分類を登録します。以下をfunctions.php
(またはPlugin)に配置してください。
これは静的ページのカテゴリを有効にします。
Grr ...コードは表示したくありません:
<?php
register_taxonomy_for_object_type( 'category', 'page' );
?>
メインループクエリを修正する正しい方法はpre_get_posts
によるものです。そのようです:
function wpse29834_filter_pre_get_posts( $query ) {
if ( is_category() && $query->is_main_query() ) {
$query->set( 'post_type', array( 'post', 'page' ) );
}
}
add_action( 'pre_get_posts', 'wpse29834_filter_pre_get_posts' );
pre_get_posts
を使用することはquery_posts()
を使用することより優先されます、しかし、オリジナルの解決策はこの場合うまくいきます。
カテゴリ化されたページをカテゴリアーカイブインデックスのループに表示するには、 query_posts()
関数を使用してループクエリをcategory.php
で変更する必要があります。例えば。:
<?php
// Declare the global
global $wp_query;
// Define our custom args
// We're telling the query to use
// both Posts and Pages
$custom_args = array( 'post_type' => array( 'post', 'page' ) );
// Merge the default query with our custom query
$query_args = array_merge( $wp_query->query, $custom_args );
// Finally, query posts based on our custom args
query_posts( $query_args );
?>
このコードを配置してから、ループを出力します。