wordpressのカテゴリー設定は、拘ると少し設定できる情報が少ないです。
せめてカテゴリーの名前と、カテゴリーページで表示するタイトルは別々に設定できればなあと思ってました。
こんな感じで、タイトル見出しだけ表示を変えたいわけです(本来ならここは【制作物】というカテゴリー名が入る所)
そういうわけで、カテゴリー情報に追加設定ができるようにしちゃいましょう。
基本的な方法はこちら→WordPressのカテゴリーにカスタムフィールドを追加する | webOpixel参考になりましたありがとうございます。
カテゴリー設定画面に入力項目を追加する
/** * カテゴリー編集画面に項目を追加する */ add_action('edit_category_form_fields', 'extra_category_fields'); function extra_category_fields($tag) { $t_id = $tag->term_id; $cat_meta = get_option("cat_meta_data"); ?> <tr class="form-field"> <th>見出しタグ</th> <td><input type="text" name="cat_meta_data" value="<?php echo esc_html($cat_meta[$t_id]) ?>"/></td> </tr> <?php }
「get_option(“cat_meta_data”)」で情報を読み出し、実際にinputのvalueに埋め込んでます。参考元では情報を一つずつ収納してましたが、それだとカテゴリーに一つ項目が増えるので、全てまとめてarrayにして収納するようにしています。
カテゴリー情報を保存する
//カテゴリー保存コード
add_action('edited_term', 'save_extra_category_fileds'); function save_extra_category_fileds($term_id) { if(isset($_POST['cat_meta_data'])) { $t_id = $term_id; $cat_meta_array = get_option("cat_meta_data"); $cat_meta_array[$t_id] = $_POST['cat_meta_data']; update_option("cat_meta_data", $cat_meta_array); } }
カテゴリーが保存されるタイミングで情報を「cat_meta_data」に収納しています。これでcat_meta_dataには各カテゴリーの「見出しタグ」情報が追加されていきます。
カテゴリーページに表示する
テーマの「category.php」を開きます。大抵の場合見出しタグには「<?php single_cat_title(); ?>」があると思います。
<?php $cat = get_category($cat); $cat_meta = get_option("cat_meta_data")[$cat->term_id]; ?> <h1 class="pageTitle"><?php echo isset($cat_meta) ? $cat_meta : single_cat_title(); ?></h1>
まず$cat_dataにカテゴリー情報を読み込ませ、$cat_metaに「get_option(“cat_meta_data”)[$cat_data->term_id];」で先程設定したカテゴリー見出しタグ情報を収納します。
あとはh1の中でカテゴリー見出しタグ情報が設定されているかどうかを確認し、カテゴリー名かカテゴリー見出しタグのどちらかを出力します。