WordPressカスタマイズ事例

ターム、アイキャッチ付きのカスタム投稿記事の一覧を表示する

カテゴリ、アイキャッチ付きの投稿の一覧を表示する」 という事例をご紹介しましたが、
今度はカスタム投稿の一覧の場合です。

・投稿へのリンクとタイトル
・タームごとに背景色を設定したタームタグ
・アイキャッチ画像

を1セットとして、最新順に一覧として表示する方法をご紹介します。

テーマのfunction.phpに下記を挿入。

if ( ! function_exists( 'display_report' ) ){
function display_report() {
global $post, $posts;

// カスタム投稿と分類名
$post_type = 'report'; //カスタム投稿名 reportとしています
$taxonomy = 'report_cat';

$posts_report = get_posts( array(
'post_type' => $post_type,
'post_status' => 'publish',
'numberposts' => 2,
'orderby'=>'desc'
));

$html='';

if($posts_report){
foreach( $posts_report as $p ){
setup_postdata($p);
$terms = get_the_terms( $p->ID, $taxonomy );
$term_slug = $terms[0]->slug;
$term_name = $terms[0]->name;

$report_term_link = get_term_link( $term_slug, $taxonomy );
$time = get_post_time('Y年m月d日',false,$p->ID);
$report_image = get_the_post_thumbnail($p->ID,"large");

$html .=  '<div class="row">'; //bootstrapを使っています
$html .=  '<div class="col-sm-6 mb-20">
<a href="'.get_the_permalink($p->ID).'" >'.$report_image.'</a>
</div>
<div class="col-sm-6 mb-20">
<a href="'.$report_term_link.'" class="report-tag small bg-'.$term_slug.'">'.$term_name.'</a>
<span class="small">'.$time.'</span><br><br>
<a href="'.get_the_permalink($p->ID).'" class="large">'.get_the_title($p->ID).'</a>
</div>';
$html .= '</div>';
}
}

wp_reset_query();

return $html;
}
add_shortcode('display_report', 'display_report');
}

その他のWordPressカスタマイズ事例