WordPressで通常の投稿とカスタム投稿でカテゴリーの出力方法をまとめる例を紹介します。
関数作成
まずはfunctions.phpに出力用の関数を記述します。
通常の投稿とカスタム投稿の条件分岐には、get_query_var()関数を使い、ポストタイプの取得可否で条件分岐させます。
条件分岐後、カスタム投稿はget_the_terms()関数で、通常の投稿はget_the_category()関数を使います。
functions.php
// カテゴリーアウトプット
function get_post_category() {
// データ取得:カスタム投稿の場合
$post_type = get_query_var('post_type'); // カスタムポストタイプを取得 ex->product
// カスタム投稿の場合
if(!empty($post_type)) {
// ポスト情報を取得
global $post;
// カスタム投稿のタクソノミー名(お使いのタクソノミー名に変えてください)
$taxonomy = 'product_cat';
// 投稿のタームを配列で取得
$post_cat_array = get_the_terms($post->id, $taxonomy);
}
// カスタム投稿ではない場合
else {
// 投稿のカテゴリーを配列で取得
$post_cat_array = get_the_category();
}
// 表示用変数
$disp_cat = '';
// カテゴリ区切り
$separator = ' , ';
// 取得したカテゴリーの配列を分解し、表示用変数へ代入
foreach($post_cat_array as $post_cat_obj) {
$disp_cat .= '<a href="'.get_category_link($post_cat_obj->term_id).'">'.$post_cat_obj->name.'</a>'.$separator;
}
return trim($disp_cat, $separator);
}
テーマに出力
次にテーマ上の出力したい場所に作成した関数を記述します。今回作成した関数はループの中でのみ使うことができます。
テーマファイル記述例
<?php echo get_post_category(); ?>