WordPress カスタム投稿タイプを作成および管理する方法
公開: 2022-09-15今日のコンテンツ管理は、投稿、ページ、メディアにとどまりません。 注文、クーポン、レビュー、購読、メンバーシップなど、ストアの要件に基づいて、何百もの種類のコンテンツを作成、編集、管理する必要があります。
この記事では、WordPress のカスタム投稿タイプを 1 か所から作成および管理して、時間とお金を節約する方法を学びます。
始めましょう。
WordPress カスタム投稿タイプとは何ですか?
基本的に、投稿タイプは WordPress サイトのさまざまなタイプのコンテンツを指します。
WordPress をインストールすると、デフォルトの投稿タイプは、投稿、ページ、添付ファイル、リビジョン、メニューの 5 つだけになります。 今日の良いニュースは、WordPress は非常に柔軟で、独自の投稿タイプを作成できることです。 したがって、これらのタイプの投稿はカスタム投稿タイプとして知られています。
これらは、通常の標準的な投稿やページとは異なる形式のコンテンツを作成するのに非常に役立ちます。また、WordPress が無制限の数のカスタム投稿タイプをサポートしていることも良い点です。
たとえば、メンバーシップ サイトを運営している場合、「メンバーシップ」というタイトルのカスタム投稿タイプを追加したいと思うでしょう。
WooCommerce ストアの所有者として、製品、注文、クーポン、サブスクリプション、ドロップシッピングなどのカスタム投稿タイプを作成することもできます.
カスタム投稿タイプを作成すると、WordPress ダッシュボードの管理エリアに独自のメニューが表示されます。
そうは言っても、WordPress で自分用にカスタム投稿タイプを簡単に作成する方法を見てみましょう。
WordPress カスタム投稿タイプを作成するには?
カスタム投稿タイプを作成する方法は 2 つあります。
- プラグインの使用
- 手動で
プラグインを使用して WordPress カスタム投稿タイプを作成する
非技術者や初心者にとって、このオプションは簡単で安全です。
100 万以上のアクティブ インストールがある最も人気のあるカスタム投稿タイプ UI プラグインを使用することをお勧めします。 このプラグインは、ウェブサイトのカスタム投稿タイプとタクソノミーを登録および管理するための使いやすいインターフェースを提供します。
プラグインをインストールして有効にしたら、 WordPress Admin panel > CPT UI > Add / Edit Post Typesを作成します。 [ Add New Post Type ] タブにいる必要があります。
まず、イベントなどのカスタム投稿タイプのスラッグを提供します。 このスラッグは URL と WordPress クエリで使用されるため、文字と数字のみを含めることができます。 その下に、カスタム投稿タイプの複数形と単数形の名前を入力します。

次に、[ Populate additional labels based on chosen labels ] リンクをクリックします。 これにより、下にある追加のラベル フィールドが自動的に入力されるので、時間を節約できます。
[ Additional Labelsセクションまで下にスクロールします。 上記のリンクをクリックしなかった場合は、投稿タイプの説明を入力し、ラベルを変更する必要があります。

これらのラベルは、特定の投稿タイプのコンテンツを管理しているときに、WordPress ユーザー インターフェイス全体で使用されます。
これが完了したら、投稿タイプの設定に移動します。 ここで、投稿タイプにさまざまな属性を設定できます。 各オプションには、その機能を説明する簡単な説明が付いています。

たとえば、投稿タイプをページのように階層化したり、時系列の投稿を逆に並べ替えたりしないことを選択できます。
一般設定の下のセクションに、この投稿タイプがサポートする編集機能を選択するためのオプションが表示されます。 含めたいオプションにチェックを入れるだけです。
最後に、[ Add Post Type ] ボタンをクリックして、カスタム投稿タイプを保存して作成します。

それでおしまい。 新しいカスタム投稿タイプが正常に作成されたので、コンテンツを追加できるようになりました。
この記事の後半で、ウェブサイトにカスタム投稿タイプを表示する方法を紹介します。
カスタム投稿タイプを手動で作成する
プラグインを使用する主な欠点は、プラグインを無効にするとカスタム投稿タイプが消えることです。
これらのカスタム投稿タイプにあるデータはそのまま残りますが、カスタム投稿タイプは登録解除され、管理エリアからアクセスできなくなります。
コードや技術者との作業に少し慣れている場合は、テーマの functions.php ファイルまたはサイト固有のプラグインに必要なコードを追加して、カスタム投稿タイプを手動で作成できます。
最初に、簡単で完全に機能する例を示して、それがどのように機能するかを理解できるようにします。 このコードを見てください:
// カスタム投稿タイプ関数
関数 create_posttype() {
register_post_type( 'イベント',
// CPT オプション
配列(
'ラベル' => 配列(
'名前' => __( 'イベント' ),
'singular_name' => __( 'イベント' )
)、
「公開」 => 真、
'has_archive' => true,
'rewrite' => array('slug' => 'events'),
'show_in_rest' => true,
)
);
}
// 関数をテーマ設定に接続
add_action( 'init', 'create_posttype' );
このコード スニペットは、投稿タイプeventsを引数の配列で登録します。 これらの引数は、カスタム投稿タイプのオプションです。
配列には 2 つの部分があります。 最初の部分はラベル付けされており、それ自体が配列です。 2 番目の部分には、公開可視性、'has_archive、slug、およびブロック エディターのサポートを有効にする show_in_rest などの他の引数が含まれています。
カスタム投稿タイプに追加オプションを追加する、より詳細なコードを見てみましょう。
/*
* CPT を作成する関数の作成
*/
関数 custom_post_type() {
// カスタム投稿タイプの UI ラベルを設定します
$labels = 配列(
'name' => _x( 'Events', '投稿タイプの一般名', 'twentytwentyone' ),
'singular_name' => _x( 'Event', '投稿タイプの単数名', 'twentytwentyone' ),
'メニュー名' => __( 'イベント', '二十一' ),
'parent_item_colon' => __( '親イベント', 'twentytwentyone' ),
'all_items' => __( 'すべてのイベント', 'twentytwentyone' ),
'view_item' => __( 'ビュー イベント', 'twentytwentyone' ),
'add_new_item' => __( '新しいイベントを追加, 'twentytwentyone' ),
'add_new' => __( '新規追加', 'twentytwentyone' ),
'edit_item' => __( '編集イベント', 'twentytwentyone' ),
'update_item' => __( '更新イベント', 'twentytwentyone' ),
'search_items' => __( '検索イベント', 'twentytwentyone' ),
'not_found' => __( '見つかりません', 'twentytwentyone' ),
'not_found_in_trash' => __( 'ゴミ箱にありません', 'twentytwentyone' ),
);
// カスタム投稿タイプのその他のオプションを設定します
$args = 配列(
'ラベル' => __( 'イベント', '二十一' ),
'description' => __( 'イベントデータ', 'twentytwentyone' ),
'ラベル' => $ラベル,
// この CPT が投稿エディターでサポートする機能
'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
// この CPT を分類法またはカスタム分類法に関連付けることができます。
'タクソノミー' => array( 'ジャンル' ),
/* 階層型 CPT はページに似ており、
※親子アイテムです。 非階層型 CPT
*は投稿のようなものです。
*/
'階層' => false,
「公開」 => 真、
'show_ui' => 真、
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'menu_position' => 5,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => '投稿',
'show_in_rest' => true,
);
// カスタム投稿タイプの登録
register_post_type( 'イベント', $args );
}
/* 'init' アクションにフックして、関数が
※当店はポスト投函型登録は行っておりません
※不必要に実行。
*/
add_action( 'init', 'custom_post_type', 0 );
ご覧のとおり、このコードを使用して、カスタム投稿タイプにさらに多くのオプションを追加しました。 これにより、リビジョン、注目の画像、カスタム フィールドなどのサポートなどの機能が追加されます。

また、このカスタム投稿タイプをgenresと呼ばれるカスタム分類法に関連付けました。
また、階層値を false に設定した部分に気付くかもしれません。 カスタム投稿タイプを Pages のように動作させたい場合は、この値を true に設定できます。
テーマのテキスト ドメインは、テーマ ディレクトリのstyle.cssファイル内にあります。 テキスト ドメインは、ファイルのヘッダーに記述されます。
サイトにカスタム投稿タイプを表示する
投稿タイプを作成したら、それをウェブサイトの訪問者に表示する必要があります。
WordPress には、カスタム投稿タイプを表示するためのサポートが組み込まれています。 新しいカスタム投稿タイプにいくつかのアイテムを追加したら、それらをウェブサイトに表示します。
使用できる方法がいくつかあり、それぞれに独自の利点があります。
デフォルトのアーカイブ テンプレートを使用してカスタム投稿タイプを表示する
WordPress admin panel > Appearance > Menusに移動し、カスタム リンクをメニューに追加します。 このカスタム リンクは、カスタム投稿タイプへのリンクです。
SEO に適したパーマリンクを使用している場合、カスタム投稿タイプの URL はほとんど次のようになります: http://example.com/events.
SEO フレンドリーなパーマリンクを使用していない場合、カスタム投稿タイプの URL は次のようになります。
http://example.com/?post_type=events.
「example.com」を独自のドメイン名に、「events」をカスタム投稿タイプ名に置き換えることを忘れないでください。

メニューを保存してから、Web サイトのフロント エンドにアクセスします。 追加した新しいメニュー項目が表示され、クリックすると、テーマの archive.php テンプレート ファイルを使用してカスタム投稿タイプのアーカイブ ページが表示されます。
カスタム投稿タイプ テンプレートの作成
カスタム投稿タイプを表示する 2 つ目の方法は、カスタム投稿タイプ アーカイブ専用のテンプレートを使用することです。
必要なことは、テーマ ディレクトリに新しいファイルを作成し、 archive-events.phpという名前を付けることだけです。 「イベント」をカスタム投稿タイプの名前に置き換えてください。
まず、テーマの archive.php ファイルの内容を archive-events.php テンプレートにコピーし、必要に応じて変更します。
これで、カスタム投稿タイプのアーカイブ ページにアクセスするたびに、このテンプレートを使用して表示されます。
同様に、投稿タイプの単一エントリ表示用のカスタム テンプレートを作成することもできます。 そのためには、テーマ ディレクトリに single-events.php を作成する必要があります。 「イベント」をカスタム投稿タイプの名前に置き換えることを忘れないでください。
テーマの single.php テンプレートの内容を single-events.php テンプレートにコピーすることから始めて、ニーズに合わせて変更を開始できます。
フロントページにカスタム投稿タイプを表示する
カスタム投稿タイプを使用する利点の 1 つは、カスタム コンテンツ タイプを通常の投稿と区別できることです。 ただし、必要に応じて、Web サイトのフロント ページにカスタム投稿タイプを表示できます。
このコードをテーマの functions.php ファイルまたはサイト固有のプラグインに追加するだけです。
add_action( 'pre_get_posts', 'add_my_post_types_to_query' );
関数 add_my_post_types_to_query( $query ) {
if ( is_home() && $query->is_main_query() )
$query->set( 'post_type', array( 'post', 'events' ) );
$クエリを返します。
}
「イベント」をカスタム投稿タイプに置き換えることを忘れないでください。
カスタム コードの追加に関する詳細なリファレンスとして、このドキュメントを検討することもできます。
カスタム投稿タイプのクエリ
テンプレートでループ クエリを実行することに慣れている場合は、その方法を次に示します。 データベースにクエリを実行することで、カスタム投稿タイプからアイテムを取得できます。
カスタム投稿タイプを表示するテンプレートに、次のコード スニペットをコピーする必要があります。
<?php
$args = array( 'post_type' => 'events', 'posts_per_page' => 10 );
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) :
$the_query->the_post(); ?>
<h2><?php the_title(); ?></h2>
<div class="entry-content">
<?php the_content(); ?>
</div>
<?php endwhile;
wp_reset_postdata();
そうでなければ: ?>
<p><?php _e( '申し訳ありませんが、条件に一致する投稿はありませんでした。' ); ?></p>
<?php endif; ?>
このコードは、新しいWP_Queryクラスの引数で投稿タイプとページごとの投稿数を定義します。 次に、クエリを実行し、投稿を取得して、ループ内に表示します。
カスタム投稿タイプをウィジェットに表示する
この場合、カスタム投稿タイプ ウィジェット プラグインを使用できます。
WordPress admin panel > Appearance > Widgetsに移動し、「最近の投稿 (カスタム投稿タイプ)」ウィジェットをサイドバーにドラッグ アンド ドロップします。
このウィジェットを使用すると、任意の投稿タイプの最近の投稿を表示できます。 Post Typeドロップダウンからカスタム投稿タイプを選択し、必要なオプションを選択する必要があります。
その後、画面の上部にある [更新] ボタンをクリックしてから、Web サイトにアクセスしてウィジェットの動作を確認してください。
カスタム投稿タイプに加えて、プラグインはアーカイブ ウィジェット、カレンダー、カテゴリ、最近のコメント、検索、およびタグ クラウドを提供します。
カスタム投稿タイプの表示については以上です。
それでは、WordPress でのカスタム投稿タイプの管理に関する非常に重要かつ興味深いセクションに移りましょう。
何百もの WordPress 投稿タイプ (カスタム投稿タイプを含む) を 1 か所から管理する方法は?
今、あなたは御馳走を求めています。
ビジネスが成長するにつれて、何百もの異なる投稿タイプから管理する必要のあるデータ フィールドが何百、何千になるでしょう。 投稿、ページ、メディア、WooCommerce 製品、注文、クーポン、ユーザー、メンバーシップ、サブスクリプションなど…
このデータの管理と編集は、各投稿タイプにアクセスして 1 つの変更を加えた場合、悪夢です。 ここで何百ものそのようなデータ フィールドを編集することの苦痛について私が言及することは絶対に望まないでしょう。
では、使い慣れた Excel のようなスプレッドシートを使用して、これらすべての WordPress 投稿タイプを 1 か所から管理および編集できるとしたらどうでしょうか?
Smart Manager プラグインは間違いなく必要なものです。
Smart Manager (アプリケーション) で何百もの投稿タイプを管理
Smart Manager を使用すると、次のことができます。
すぐに、カスタム分類法もうまく管理できるようになります。
管理する投稿タイプのダッシュボードを選択し、必要に応じて編集します。
商品投稿タイプの管理

たとえば、これは Product 投稿タイプのダッシュボードです。 製品については、次のことができます。
- 在庫状況、通常価格とセール価格、説明などの詳細を直接編集
- 新製品を Smart Manager グリッドに直接追加
- 高度な検索フィルターを適用して、「100 ドルから 200 ドルの価格帯の製品」などの目的の製品を取得します。
- これらの 60 個の製品を一括編集して、価格を 10% 引き下げます
- テスト製品を完全に削除する
- すべての商品を複製するか、フィルターに基づいて
- 商品データをCSVにエクスポート
- 「在庫ログ」ダッシュボードのようなカスタム ビューを作成する
などなど…
製品関連の操作の詳細については、Smart Manager のドキュメントを参照してください。
注文、クーポン、サブスクリプションの管理…
投稿タイプのダッシュボードを選択し、製品の場合と同様に、カスタム フィールドを含むすべてのフィールドの編集を開始します。
- 投稿とページ– タイトル、画像、下書きから公開までの投稿ステータスの更新など。
- 注文- ステータス、請求の詳細、配送フィールド、通貨などを変更します。
- クーポン– クーポンの使用、金額、種類、有効期限の変更、クーポンの削除など
- ユーザー (顧客) – ライフタイム バリューの表示、請求と配送の詳細の編集、資格情報の変更など。
- メディア– タイトル、内容、抜粋、著者、メニュー順など
- メンバーシップ– すべてのメンバーシップ データのエクスポート、メンバーシップ プランの一括アップグレード、メンバーシップ ステータスのキャンセルなど。
- サブスクリプション– サブスクリプションの一括再アクティブ化またはキャンセル、無料試用期間の延長、サインアップ料金の値下げ、配送料の追加など。
- 予約– 予約価格の編集、スケジュール変更、キャンセル、エクスポートなど
- 追加の製品オプション– 配送オプションの追加、ギフト包装オプションの追加、カスタマイズ オプションの表示、より高いプランのアップセルなど。
- ドロップシッピング– サプライヤー、製品価格、在庫状況などを管理します。
- マルチベンダー– 新しいベンダーの追加、出荷の編集、税クラス、手数料ステータス、顧客メモ、注文のマークなど。
- LMS – コース、レッスン、長さと難易度、コースの複製などを管理および編集します。
- 高度なカスタム フィールド– サムネイル、ラジオ ボタン、チェックボックス、範囲、ファイルなどのすべてのフィールド タイプを追加、編集、および削除します。
何百もの投稿タイプ…
かなり柔軟でクールですよね?
ライブデモを試す
結論
このブログが、WordPress でカスタム投稿タイプを作成する方法を学ぶのに役立つことを願っています. 面倒なコーディングを避けるために、カスタム投稿タイプ UI プラグインを使用することをお勧めします。 ただし、プラグインの無効化には注意してください。
さらに、非常に多くのカスタム投稿タイプを管理することにイライラしたくない場合は、Smart Manager を使用して、任意のタイプの投稿を 1 か所から簡単に管理できます。
きっと後で私に感謝するでしょう。
