WordPressの get_the_category() は投稿記事のカテゴリーを取得するPHP関数です。
今回はループ(くり返し)構文を使って、投稿記事カテゴリーを複数表示するコードを実装してみました。
このコードはサンプルテーマの content.php の entry-header タグの日付表示コードの次に挿入しています。
content.php
<?php $categories = get_the_category(); // 情報取得 if ( $categories ) {
foreach ( $categories as $catkey ) { $catId = $catkey->cat_ID; // ID取得 $catName = $catkey->name; // 名称取得 $link = get_category_link($catId); // リンクURL取得 echo '<span class="entry-category" id="' . $catId . '"><a href="' . $link . '">' .$catName . ' </a></span>';
}
}
?>
解説
foreach 構文は get_the_category() 関数で取得したカテゴリーID, 名前といった「オブジェクト」を要素として各配列に格納したり、タグ生成するためのループ(くり返し)処理に使います。
foreach ( $categories as $catkey ) {
$catkey は配列 $categories のキーでカテゴリーID, 名前のオブジェクト別に配列に順次格納しています。
$catId = $catkey->cat_ID; $catName = $catkey->name;
最後にループ本体の処理を echo 文でタグ生成してループを閉じます。
echo '<span class="entry-category" id="' . $catId . '"><a href="' . $link . '">' .$catName . ' </a></span>'; }
ポイント
最初、予約語 | WordPressで使ってはいけない名前 を配列キーとして命名してしまい動かずに苦心しました。デザインとしては span タグを使って投稿日付のとなりに段落を作らずに配置している点です。
おわりに
いかがでしたでしょうか。コード処理を学ぶとフロントエンドのデザイン思考の理解が深まりますね。
それでは楽しいPHPライフを!
参考URL: 【WordPress初心者必見】記事内の複数のカテゴリーをすべて取得する方法