プログラムでWordPressカスタム投稿タイプを作成する方法

公開: 2021-10-05

サイトにカスタム投稿タイプを公開しますか? 私たちはあなたをカバーしています。 このガイドでは、少しのコードを使用してプログラムでWordPressカスタム投稿タイプを作成する方法を説明します。

当初、WordPressは投稿を公開するために作成されました。 しかし、これらすべての年月を経て、WordPressは投稿を公開するためのプラットフォーム以上のものになりました。 今日では、これはすべてのWebサイトのほぼ40%に電力を供給する最も完全なWebソリューションです。

多くの機能が組み込まれていますが、ポストパブリッシングは、ユーザーをサイトに引き付け、ユーザーの関心を維持するための最良の方法の1つです。 WordPressにはデフォルトの投稿タイプが用意されていますが、サイトをカスタマイズして競合他社との差別化を図りたい場合は、カスタム投稿タイプを作成することをお勧めします。

このチュートリアルでは、 WordPressのカスタム投稿タイプをプログラムで作成して公開する方法を紹介します。 それに飛び込む前に、カスタム投稿タイプとは何か、そしてそれらをいつ使用すべきかをよりよく理解しましょう。

カスタム投稿タイプとは何ですか?

カスタム投稿タイプはコンテンツのタイプです。 WordPressにはデフォルトでいくつかの投稿タイプが付属しています。 投稿とページは最も有名なものですが、他にもあります。

  • 投稿
  • ページ
  • 添付ファイル
  • ナビゲーションメニュー
  • 改訂
  • カスタマイズされたCSS
  • チェンジセット

ほとんどのユーザーは最初の5つのタイプを使用しますが、他のタイプもあります。 実際には、それらがカスタム投稿タイプであることを知らずに、おそらくそれらのいくつかを使用しています。

カスタム投稿タイプの最良の例は、WooCommerce製品です。 WooCommerceを初めてアクティブ化すると、プラグインは「Products」と呼ばれるカスタム投稿タイプを作成します。 製品の作成を開始すると、WooCommerceが提供するすべての拡張機能を備えた製品投稿タイプとして公開されます。

これらの投稿タイプはカスタムとは呼ばれていませんが、WooCommerceと同じ方法で投稿タイプを作成し、必要な名前を付けることができます。 たとえば、イベント、リスト、スケジュール、レッスン、ポートフォリオ、およびプロファイルは、特定のWebサイトに役立つ投稿タイプ名にすることができます。

全体として、カスタム投稿タイプは、ユーザーがWebサイトをカスタマイズするための特定の要件に従って作成できる新しいタイプの投稿です。

なぜ、いつカスタム投稿タイプを使用する必要がありますか?

カスタム投稿タイプ(CPT)は、それらがどのように構築されているかによって大きく異なる可能性があるため、それらを使用してあらゆる種類のソリューションを実現できます。

次の場合にカスタム投稿タイプを使用できます。

  • デフォルトの投稿タイプでは公開できない特定の種類の情報を定期的に投稿します
  • 特定の種類の投稿を標準の投稿と区別する必要があります
  • ある種の投稿の動作を変更する必要があります
  • 投稿機能、公開プロセス、要素をカスタマイズしたり、それらに特別な機能を適用したりしたい

原則として、機能やカスタム動作を備えたさまざまな種類の投稿が必要な場合は、WordPressサイトでCPTを使用する必要があります。

カスタム投稿タイプはデフォルトの投稿タイプとは異なるため、デフォルトの投稿タイプ機能を上書きすることなく、特別な処理が必要です。 これは、さまざまな投稿タイプが必要な場合に大きな利点です。要件を正確に満たすカスタム投稿タイプを最初から作成できるからです。

それらが何であるか、いつ使用するかをよりよく理解したので、カスタム投稿タイプを作成する方法を見てみましょう。

プログラムでWordPressカスタム投稿タイプを作成する方法

このセクションでは、例を使用してWordPressでカスタム投稿タイプを作成する方法を示します。 開始する前に、サイトをバックアップし、子テーマをまだ作成していない場合は作成してください。

ダッシュボードで、 [外観]> [テーマエディター]に移動し、右側の列にある子テーマのfunctions.phpファイルを開いて、次のスクリプトを貼り付けます。 これは、 moviesと呼ばれるカスタム投稿タイプを登録します。

 関数QuadLayers_custom_post_type(){
//カスタム投稿タイプのUIラベルを設定します
    $ labels = array(
        'name' => _x( 'Movies'、 'Post Type General Name'、 'storefront')、
        'singular_name' => _x( 'Movie'、 'Post Type Singular Name'、 'storefront')、
        'menu_name' => __( 'Movies'、 'storefront')、
        'parent_item_colon' => __( '親映画'、 'ストアフロント')、
        'all_items' => __( 'すべての映画'、 'ストアフロント')、
        'view_item' => __( 'ムービーを表示'、 'ストアフロント')、
        'add_new_item' => __( '新しいムービーを追加'、 'ストアフロント')、
        'add_new' => __( 'Add New'、 'storefront')、
        'edit_item' => __( 'ムービーの編集'、 'ストアフロント')、
        'update_item' => __( '映画の更新'、 'ストアフロント')、
        'search_items' => __( '映画の検索'、 'ストアフロント')、
        'not_found' => __( 'Not Found'、 'storefront')、
        'not_found_in_trash' => __( 'ゴミ箱に見つかりません'、 'ストアフロント')、
    );
//カスタム投稿タイプの他のオプションを設定します
    $ args = array(
        'label' => __( 'movies'、 'storefront')、
        'description' => __( '映画のニュースとレビュー'、 'ストアフロント')、
        'labels' => $ labels、  
        'supports' => array( 'title'、 'editor'、 'excerpt'、 'author'、 'thumbnail'、 'comments'、 'revisions'、 'custom-fields'、)、     
        '分類法' => array( 'ジャンル')、     
        'hierarchical' => false、
        'public' => true、
        'show_ui' => true、
        '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' => 'post'、
        'show_in_rest' => true、 
    );
    //カスタム投稿タイプを登録する
    register_post_type( 'movies'、$ args);
}
add_action( 'init'、 'QuadLayers_custom_post_type'、0);

コードを貼り付けると、WordPress管理ダッシュボードにMoviesという新しいタブが表示されます。
プログラムでカスタム投稿タイプを作成する

これを開くと、投稿エディタ画面に同じ引数が設定されているため、投稿エディタがデフォルトの投稿タイプと同じであることがわかります。 では、それがカスタム投稿タイプエディタであることをどうやって知るのでしょうか? ページのURLとタイトルに、映画の投稿タイプが表示されているためです。

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

最終結果が表示されたので、コードを分析して、各セクションの機能をよりよく理解できるようにします。

コードの説明

プログラムでWordPressカスタム投稿タイプを作成する方法を見てきました。 しかし、それはあなたが知らなければならないことの半分にすぎません。 独自の投稿タイプを作成する場合は、コードをカスタマイズする必要があります。 そのためには、スニペットの各部分が何をするのかを理解する必要があります。

wp_init()フックを使用して、関数が1回実行されるようにします:WordPressの開始時。 QuadLayers_custom_post_type()関数には、3つの部分があります。

1)ラベル

これらは、テーマがさまざまな管理ページとフロントエンドページで使用する文字列のセットです。 これは単一のアレイに設定されます。

$labels = array(
'name' => _x( 'Movies', 'Post Type General Name', 'storefront' ),
);

2)オプション

これらは、カスタム投稿タイプ(ムービー)の動作とその他の機能を定義するいくつかの事前定義されたオプションです。

各オプションは、カスタム投稿タイプがどのように機能するかを定義する特定の命令です。 最も関連性の高いものは次のとおりです。

  • 'supports':投稿エディタで使用されるコンポーネントを定義します
  • 「分類法」:現在の機能に登録されているすべてのCPTに、1つ以上の既存のカテゴリまたはカスタムカテゴリを適用できます。
  • ' '階層 ' :投稿に親コンテンツを含めることはできません。これにより、CPTとページが区別されます。 カスタム投稿タイプではなくカスタムページを公開する場合は、これをtrueに設定します
  • ' show_in_admin_bar': WordPress管理ダッシュボードにCPTタブを表示します

すべての引数とその説明の完全なリストについては、このドキュメントを確認してください。

3)カスタム投稿タイプ登録

WordPress関数register_post_type()は、最終的に新しいカスタム投稿タイプを登録し、使用できるように設定します。

これでコードをよりよく理解できたので、カスタム投稿タイプの公開を開始できます。 ただし、それらを公開する以外に、CPTをどこかに表示する必要があります。 その方法を見てみましょう。

WordPressでカスタム投稿タイプを表示する方法

これまで、WordPressでプログラムでカスタム投稿タイプを作成する方法を見てきました。 公開したら、どこに表示するかを決める必要があります。

フロントエンドでCPTを印刷する方法はいくつかあります。 特定のカスタム投稿タイプの完全なリストを、別の投稿、ページ、サイドバー、またはその他の必要な場所に表示できます。

次のサンプルスクリプトでは、カスタムショートコードを作成して、前の関数を使用して作成したすべてのカスタム投稿タイプを新しいページに表示します。

次のスクリプトは、 Moviesというショートコードを作成します。これにより、CPTに追加したすべてのムービーが、ショートコードを追加したページに印刷されます。

 add_shortcode( 'movies'、 'QuadLayers_display_cpt_shortcode');
関数QuadLayers_display_cpt_shortcode(){
    $ args = array( 'post_type' => 'movies'、 'posts_per_page' => 10);
    $ the_query = new WP_Query($ args);
    if($ the_query-> have_posts()):
    while($ the_query-> have_posts()):$ the_query-> the_post();
    $ c = the_title(sprintf( '<h2 class = "entry-title">'、esc_url(get_the_title()))、 '</ h2>')。
    '<divclass = "entry-content">'。
    コンテンツ()。
    '</ div>';
終わり;
wp_reset_postdata();
それ以外:
$ c = '申し訳ありませんが、条件に一致する投稿はありません。';
endif;
$ cを返します。
}

したがって、ショートコードをページに配置すると、次のようになります。

CTPを表示するためのショートコード

結果が表示されます。

ショートコード付きのカスタム投稿タイプ

結論

要約すると、デフォルトでWordPressにはいくつかの投稿タイプが含まれていますが、要件に応じてカスタム投稿タイプを追加してサイトをカスタマイズできます。

このガイドでは、WordPressのカスタム投稿タイプをプログラムで作成する方法を説明しました。 スニペットを分析し、各セクションについて説明したので、カスタマイズしてサイトで使用できます。 さらに、サイトのどこにでもカスタム投稿タイプを表示できるカスタムショートコードを作成する方法を見てきました。

サイトにカスタム投稿タイプを作成してみましたか? コメントセクションであなたの経験を教えてください。

サイトの他の領域をカスタマイズするには、次のチュートリアルを確認してください。

  • カスタムアップロードフィールドをWooCommerceに追加する方法
  • チェックアウトにカスタムフィールドを追加する方法
  • WooCommerceチェックアウトフィールドを編集するためのガイド