gooodmark

goodなWebサイトを厳選ブックマーク!デザインやディレクションの参考にどうぞ。

516bookmark

WordPressの基本コード⑤(カスタム投稿・タクソノミー編)

投稿

カスタム投稿ラベル
<?php echo esc_html(get_post_type_object(get_post_type())->label ); ?>
ターム名(リンクなし)
<?php
$tarms = get_the_terms($post -> ID ,'タクソノミー名');
foreach ($tarms as $tarm) {
	$tarm_name = $tarm -> name; 
} ?>
<?php echo esc_html($tarm_name); ?>
タームスラッグ
<?php
$tarms = get_the_terms($post -> ID ,'タクソノミー名');
foreach ($tarms as $tarm) {
	$tarm_slug = $tarm -> slug;
} ?>
<?php echo esc_html($tarm_slug); ?>
タームリスト(リンクあり)
<?php echo get_the_terms($post->ID, 'タクソノミー名' ); ?>
<?php echo get_the_term_list($post->ID, 'タクソノミー名', '<li>','','</li>'); ?>
タームリスト(リンクあり・投稿数)
<?php
$args = array('hide_empty'=> 0);
$terms = get_terms('タクソノミー名', $args);
foreach($terms as $term) {
  echo '<li><a href="' . get_term_link( $term ) . '">' . $term->name . '(' .$term->count .')</a></li>' ."\n";
} ?>
タームリスト(リンクあり・投稿数・投稿記事数順に5件表示)
<?php
$args = array(
  'orderby'	=> 'count',
  'order'	=> 'DESC',
  'number'  => '5'
);
$terms = get_terms('タクソノミー名', $args);
foreach ($terms as $term ) {
  $des_list .= '<li class="'. $term-> slug .'">';
  $des_list .= '<a href="' . get_term_link( $term ) . '">'. $term->name . '(' .$term->count .')</a></li>
';}
echo $des_list; ?>

類似記事

同タームの記事を表示
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$terms = get_terms('タクソノミー名',array('fields'=>'ids'));
query_posts( array(
	'posts_per_page' => 20,
	'paged' => $paged,
	'order' => 'DESC',
	'tax_query' => array(array(
			'taxonomy' => 'タクソノミー名',
			'field' => 'id',
			'terms' => $terms,
			'operator' => 'IN'
	)),
)); ?>

条件分岐

カスタム投稿:「hoge」
<?php if ((get_post_type() == 'hoge')): ?>
カスタム投稿「hoge」の場合
<?php endif; ?>
カスタム投稿:「hoge」「hogehoge」
<?php if (in_array(get_post_type(), array('hoge', 'hogehoge'))) { ?>
カスタム投稿「hoge」「hogehoge」の場合
<?php } ?>
カスタム投稿:アーカイブ&投稿
<?php if (is_post_type_archive('hoge') || is_singular('hoge')) {?>
カスタム投稿「hoge」のアーカイブ・投稿ページの場合
<?php } ?>
カスタムタクソノミー
<?php if (is_object_in_term($post->ID, 'hoge','hogehoge')){ ?>
カスタムタクソノミー「hoge」のターム「hogehoge」の場合
<?php } ?>