get_post & foreach カテゴリの一覧をリンク付きで取得する

get_post & foreach カテゴリの一覧をリンク付きで取得するメモ

 

まずループ文があります

<?php
//ループさせたいデータのステータス
$args = array(
'posts_per_page' => 100, //100件ループ
'post_type' => 'post' //投稿種別

//追加で変数の追加が可能...

);
$myposts = get_posts( $args ); //設定したデータをゲットする
?>

<?php foreach ( $myposts as $post ) : setup_postdata( $post );?>

//$mypostsをループ、投稿データは$postに収納されている

foreach内にループさせたい本文を記載する

<?php foreach ( $myposts as $post ) : setup_postdata( $post );?>
<li>
<a href="/<?php echo esc_html( $post->post_type ); ?>/<?php echo esc_html( $post->post_name ); ?>">
<dl class="cf">
<dd><?php echo esc_html( $post->post_title ); ?></dd>

</dl></a>
</li>
※$postのデータ内からpost_typeを取り出している。
※$postのデータ内からpost_nameを取り出している。
※$postのデータ内からpost_titleを取り出している。
<?php
endforeach;
?>

なので$postからカテゴリ一覧をforeachして出力します。

<?php
$categories = get_the_category($post);//$postからカテゴリを取得する
foreach( $categories as $category ) {
echo '<a href="'.get_category_link($category->term_id).'">'.$category->name.'</a>';
}

//$categoriesをループ、一つごとのカテゴリデータは$categoryに収納されている
//$categoryのデータ内からterm_idを取り出している。
//$categoryのデータ内からnameを取り出している。
?>

これを最初のループ文のどっかに入れる。

WordPressでカテゴリをすべて取得したり、単体で取得したり、リンク付きで取得したり