ワードプレステーマ検索
×
キーワード
価格
カテゴリー
提供元
評価
※ 入力したキーワードが、テンプレート名に含むものを絞り込みます。
のテーマ

カスタム投稿を自作する方法【プラグインなし】

目次

カスタム投稿タイプとは

カスタム投稿タイプとは、その名のとおり、投稿タイプをカスタムできる機能です。

WordPressの初期設定時には、ブログ記事を書くための「投稿」という項目があります。その投稿フォームとは別に、新しく「カスタム投稿」「サンプル投稿」のような項目を作成し、Wordpressでの管理のしやすさを向上させることができます。

カスタム投稿タイプを自作する方法

下記コードを「functions.php」に、まるっとコピペして実装してみましょう。

※より細かな設定を施したい場合は、公式リファレンスをご覧ください。

///////////////////まるっとコピペOK///////////////////
add_action('init', 'create_post_type');
function create_post_type()
{
    //投稿時に使用できる投稿用のパーツを指定
    $supports = array(
        'title', //タイトルフォーム
        'editor', //エディター(内容の編集)
        'thumbnail', //アイキャッチ画像
        'author', //投稿者
        'excerpt', //抜粋
        'revisions', //リビジョンを保存
    );
    register_post_type(
        'sample', // 投稿タイプ名
        [
        'labels' => [
            'name' => 'サンプル投稿', // 管理画面上で表示する投稿タイプ名
            'add_new' => '新規追加', // 新規追加のラベル
            // 'add_new_item' => 'サンプル投稿新規登録', // 編集画面ラベル(新規登録時)
            // 'edit_item' => 'サンプル投稿編集', //編集画面ラベル(既存投稿編集時)
            // 'menu_name' => 'サンプル投稿', //管理画面メニュー(親ラベル)
            // 'all_items' => 'サンプル投稿', //管理画面メニュー(一覧ラベル)
            // 'search_items' => 'サンプル投稿を検索' , //検索フォームボタンラベル
            // 'singular_name' => 'サンプル投稿識別名',    // カスタム投稿の識別名
        ],
        'public'        => true,  // カスタム投稿タイプの表示(trueにする)
        'has_archive'   => true, // カスタム投稿一覧(true:表示/false:非表示)
        'menu_position' => 5,     // 管理画面上での表示位置
        'show_in_rest'  => false,  // true:「Gutenberg」/ false:「ClassicEditor」
        'supports' => $supports
        ]
    );
}

管理画面の「投稿」直下に「サンプル投稿」というカスタム投稿が追加されます。

add_action( ‘init’ , ‘ 作成するカスタム投稿タイプの関数’ )で、設定した関数を管理画面に追加することができます。

カスタム投稿タイプの追加

register_post_type(
    'sample', // 投稿タイプ名
    [
    'labels' => [
        'name' => 'サンプル投稿', // 管理画面上で表示する投稿タイプ名
        'add_new' => '新規追加', // 新規追加のラベル
        // 'add_new_item' => 'サンプル投稿新規登録', // 編集画面ラベル(新規登録時)
        // 'edit_item' => 'サンプル投稿編集', //編集画面ラベル(既存投稿編集時)
        // 'menu_name' => 'サンプル投稿', //管理画面メニュー(親ラベル)
        // 'all_items' => 'サンプル投稿', //管理画面メニュー(一覧ラベル)
        // 'search_items' => 'サンプル投稿を検索' , //検索フォームボタンラベル
        // 'singular_name' => 'サンプル投稿識別名',    // カスタム投稿の識別名
    ],
    'public'        => true,  // カスタム投稿タイプの表示(trueにする)
    'has_archive'   => true, // カスタム投稿一覧(true:表示/false:非表示)
    'menu_position' => 5,     // 管理画面上での表示位置
    'show_in_rest'  => false,  // true:「Gutenberg」/ false:「ClassicEditor」
    'supports' => $supports
    ]
);

register_post_typeの引数に、カスタム投稿タイプの設定を行います。

設定する項目は、下記項目になります。

  • カスタム投稿名
  • labels:作成するカスタム投稿の各項目のラベルの設定
  • publish:カスタム投稿タイプの表示
  • has_archive:カスタム投稿の一覧の表示
  • menu_position:管理画面上での表示位置
  • show_in_rest:エディターの種類
  • supports:カスタム投稿編集画面に表示させる項目

基本的に、コメントアウトしてるもの以外の設定を行えば大丈夫です。より分かりやすいUIにしたい等あれば、コメントアウトを解除し追加設定を行っていきましょう。

menu_positionの表示位置

投稿5
メディア10
リンク15
固定ページ20
コメント25
最初の区切り60

表示位置を整数で指定し、項目毎の数値と比較して、追加位置を設定することができます。

編集画面の項目設定

supportsに配列で、追加する項目を設定します。

//投稿時に使用できる投稿用のパーツを指定
$supports = array(
    'title', //タイトルフォーム
    'editor', //エディター(内容の編集)
    'thumbnail', //アイキャッチ画像
    'author', //投稿者
    'excerpt', //抜粋
    'revisions', //リビジョンを保存
);

配列内に「thumbnail」を設定しているが、アイキャッチ画像の項目が表示されないぞ!という方は、下記コードを「functions.php」に追加しましょう。

add_theme_support('post-thumbnails');

こちらのコードは、投稿タイプ内でアイキャッチ画像をサポートするコードになります。カスタム投稿タイプ内だけでなく、全投稿内でサポートさせるよう設定できます。

(adsbygoogle = window.adsbygoogle || []).push({});
よかったらシェアしてね!
  • URLをコピーしました!
目次