2018/04/01 ブログのテーマをcocoonに変更しました。

めちゃめちゃ便利[WordPress]投稿画面をカスタマイズする方法

こんにちはオーカワです。

今回はWordPressの投稿画面用のカスタマイズとしてボックスを作ります。

ボックスを一度作ってしまえば、誰でも使えて便利ですね。

今回は僕が作成したカテゴリボックスを例に紹介していきます。

カテゴリ表示

コンパスのPC版ホーム画面には記事の右上にカテゴリが表示されています。

この記事はプログラムがカテゴリとして表示されています。

こちらの表示はこちらの記事を参考にさせて頂きました。

【Simplicityカスタマイズ】サムネイルにカテゴリーを表示する方法
このサイトの記事一覧で行っているサムネイルにカテゴリー名を表示するカスタマイズの解説です。

しかし、この記事通りだと表示させたいカテゴリが複数あった場合、自動で決められてしまうため改良しましたー

改良ポイント

・投稿画面にボックスを追加して表示したいカテゴリを入力出来るようにする
・誰でも簡単に扱えるようにする

作成したプログラム

//カテゴリ用
function add_my_box() {
global $post;
$category_title = get_post_meta(get_the_ID(),'category_title', true);
$category_title = htmlspecialchars($category_title);
echo '<label style="font-weight:bold;margin-bottom:5px;">表示したいカテゴリ</label>';
echo '<input type="text" style="width:100%" placeholder="カテゴリを入力してください。" name="category_title" value="'.$category_title.'" />';
echo '<p class="howto" style="margin-top:0;">説明しよう。このボックスは表示したいカテゴリが入力出来るんだー。入力がない場合は自動でカテゴリを決めるぜー。自動が嫌なboyはここに入力しよう。</p>';
}
function add_my_box_hooks() {
//add_meta_box('my_box', 'タイトル', 'add_my_box', '投稿タイプ', 'normal', 'high');
add_meta_box('my_box', 'カテゴリ決め', 'add_my_box', 'post',  'side');
add_meta_box('my_box', 'カテゴリ決め', 'add_my_box', 'page',  'side');
add_meta_box('my_box', 'カテゴリ決め', 'add_my_box', 'topic', 'side');
}
function add_my_box_init() {
add_action('admin_menu', 'add_my_box_hooks');
}
add_action('init', 'add_my_box_init');
add_action('save_post', 'save_category_custom_data');
function save_category_custom_data(){
$id = get_the_ID();
//タイトル
$category_title = null;
if ( isset( $_POST['category_title']  )  )
$category_title = $_POST['category_title'];
$category_title_key = 'category_title';
add_post_meta($id, $category_title_key, $category_title, true);
update_post_meta($id, $category_title_key, $category_title);
}
function get_category_title_singular_page(){
$category_title = get_post_meta(get_the_ID(),'category_title', true);
return $category_title;
}
<?php $title = get_category_title_singular_page(); ?>
<?php if ( empty($title) ): ?>
<?php $cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name;  } ?>
<?php else: ?>
<?php echo $title; ?>
<?php endif; ?>

 

解説

function.phpの下3行以外はボックス用のプログラムになります。

コピペで使えますが、変数名は注意して下さい。

関数 get_category_title_singular_page()で表示したいカテゴリを取得します。

ない場合はenpty(空)を返します。

表示

初めて表示する場合は表示オプションを変更する必要があります。

投稿画面の上部にある表示オプションを変更してください。

今回の記事もプログラムをカテゴリで表示したいと思います。

じゃーねー

 

コメント