記事の詳細

カスタム投稿。なんだかいつもこれに悩まされているような気がしています。
今回は、カスタム投稿もトップの最新記事に含め、なおかつカテゴリのようにラベルを表示させるという方法です。
まずはこの表示にするために—
1
function.phpに記述。カスタム投稿名は「kamome」と「tabi」で作りました。

function custom_post_add_top( $query ) {
 if ( is_admin() || ! $query->is_main_query() )
 return;
 
if ( $query->is_home() ) {
 $query->set( 'post_type', array( 'post', 'tabi', 'kamome' ) );
 return;
 }
}
add_action( 'pre_get_posts', 'custom_post_add_top' );

2
そうすると、一応一覧に出てきましたが、カテゴリ名に当たる投稿名が出てきません。ここでもまたカスタム投稿を記述するように書き加えないといけないんです・・・。
オリジナルの記述。ここでは通常投稿のカテゴリしか指定していません。
トップの一覧なので、index.phpに記述。

<?php if ($options['show_category']) : ?><li class="post_category"><?php the_category(', '); ?></li><?php endif; ?>

ここで条件分岐。カスタム投稿のラベル名がkamomeとtabiで出てきたら、表示しなさいよ、出てこなければ通常のカテゴリ表記をしなさいよ、と命令します。

<?php if( 'kamome' == get_post_type() || 'tabi' == get_post_type() ): ?>
<a href="./<?php echo esc_html(get_post_type_object(get_post_type())->name); ?>"><?php echo esc_html(get_post_type_object(get_post_type())->label ); ?></a>
<?php else: ?>
<a href="./<?php echo $category->slug;?>"><?php echo $category->cat_name;?></a>
<?php endif; ?>
<?php if ($options['show_category']) : ?><li class="post_category"><?php the_category(', '); ?></li><?php endif; ?>

3
こんなんなりましたけど~~~。
隙間が空いてしまったので、のちのち改善策を考えていきます。

参考にした記事:カスタム投稿タイプの作成からトップページへの表示までの流れ

関連記事

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


*

WordPressテーマ「AN (tcd014)」

アーカイブ

Twitter

ページ上部へ戻る