2017年以前の旧ブログ

BLOG2017

カスタム投稿タイプとタクソノミー呼び出し

ダーシノ Other Blog

WordPressのカスタム投稿とタクソノミーを特定の固定ページで一覧出力する基本をメモがてら記載します。
カスタム投稿の追加方法は以前の記事参照

タクソノミー別、カスタム投稿呼び出し

カスタム投稿タイプ: cpt_type
タクソノミー:tax1

タクソノミーのターム一覧出力

タクソノミーが持つタームを取得し、一覧で表示します。

<?php
$categoryList = get_terms('tax1',array(
'taxonomy' => 'tax1',
'orderby' => 'order',
'order' => 'ASC',
));
foreach($categoryList as $news_term_item) {
$my_slug[] = $news_term_item->slug;
$my_name[] = $news_term_item->name;
}
?>
<?php
$num = count($my_slug);
for($a = 0; $a < $num; $a++) {
?>
<?php echo($my_slug[$a]); ?>
<?php echo($my_name[$a]); ?>
<?php }; ?>

 
$my_slug[$a] タームスラッグ出力
$my_name[$a] ターム名出力
'order' => 'ASC' 'ASC'は昇順です。降順の場合は'DESC'です。
forループの中でループするHTMLタグを好きに記載してください。
例)
<li><a href="<?php echo($my_slug[$a]); ?>"><?php echo($my_name[$a]); ?></a></li>
 

カスタム投稿一覧出力

全ての記事を一覧で出力します。

<?php
$paged = get_query_var('paged');
$arg = array(
'post_type' => '"cpt_type',
'show_option_all' => '',
'paged' => $paged,
'posts_per_page' => '10'
);
$myposts = query_posts($arg);
if (count($myposts) > 0) {
if(have_posts()):
while(have_posts()):
the_post();
?>
<?php the_title(); ?>
<?php the_time('y.m.d'); ?>
<a href="<?php the_permalink(); ?>"></a>
<?php the_field('fieldtext',$post->ID); ?>
<?php endwhile; endif; ?>
<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
<?php } wp_reset_query(); ?>

 
'posts_per_page' => '10' 1ページの記事出力数
the_title() 記事タイトル出力
the_time('y.m.d') 記事投稿日出力
the_permalink() 詳細ページへのリンクURL出力
the_field('fieldtext',$post->ID) カスタムフィールド値出力
※上記はfieldtextというカスタムフィールド名を出力
<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
プラグイン「WP-PageNavi」を利用した時のページャー出力
whileの中でHTMLタグを好きに記載してください。
例)
<p><span><?php the_time('y.m.d'); ?></span>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
 

カスタム投稿ターム毎一覧出力

該当するタームの記事を一覧で出力します。

<?php
if(isset($_GET['cg'])) {
$cg = $_GET['cg'];
}
$paged = get_query_var('paged');
$arg = array (
'post_type' => 'cpt_type',
'paged' => $paged,
'posts_per_page' => '10',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'tax1',
'field' => 'slug',
'terms' => array($cg),
'operator' => 'IN'
)));
$myposts = query_posts($arg);
if (count($myposts) > 0) {
if(have_posts()):
while(have_posts()):
the_post();
?>
<?php the_title(); ?>
<?php the_time('y.m.d'); ?>
<a href="<?php the_permalink(); ?>"></a>
<?php the_field('fieldtext',$post->ID); ?>
<?php endwhile; endif; ?>
<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
<?php } wp_reset_query(); ?>

 
if(isset($_GET['cg'])) {
$cg = $_GET['cg'];
}
でURLのターム情報をgetします。
https://dp778.co.jp/wp2022/blog/?cg=cg_company
上記だと cg_company をgetします。
後は「カスタム投稿一覧出力」と一緒です。
これで記事の呼び出しは完了です。
他にも画像を呼び出してトリミングや、チェックボックスのカスタムフィールド値呼び出した場合の活用法などありますが、またの機会に。