ホームページ > CMS チュートリアル > &#&プレス > WordPressカスタム投稿タイプの決定的なガイド

WordPressカスタム投稿タイプの決定的なガイド

Lisa Kudrow
リリース: 2025-02-15 13:11:11
オリジナル
513 人が閲覧しました

WordPressカスタム投稿タイプの決定的なガイド

キーテイクアウト

  • WordPressは、プラグイン、テーマ、WP REST APIを介して、投稿または構造化されたデータをさまざまなタイプにグループ化できる本格的なコンテンツ管理システムおよび開発プラットフォームに進化しました。
  • WordPressのカスタム投稿タイプ(CPT)は、WordPressに作成および登録されている新しい投稿タイプです。投稿タイプの例には、会社またはビジネスのウェブサイトのポートフォリオ、証言、および製品が含まれます。
  • カスタム投稿タイプの作成には、register_post_type()関数に投稿タイプを登録し、一連の引数を使用してカスタマイズします。これらの引数は、記述名、パブリックの可視性、メニューの位置、アイコン、階層、および投稿タイプのその他の機能などの側面を制御できます。
  • カスタムポストタイプUI、PODSフレームワーク、カスタムポストタイプメーカーなど、いくつかのプラグインがあり、カスタムポストタイプの作成プロセスを簡素化し、ユーザーフレンドリーになり、コーディングの必要性を排除できます。 🎜>
  • WordPressが単なるブログソフトウェアと呼ばれた時代はなくなりました。
  • プラグインとテーマ、グループの投稿、または構造化されたデータをさまざまなタイプに介して機能を拡張する機能、およびWP REST APIがCoreに到着することにより、それはさらに吹き飛ばされたコンテンツ管理システムと開発プラットフォームにさらに進化しました。
長年にわたり、カスタムポストタイプを大幅に利用するオントップWordPressを構築した多くのカスタムWebアプリケーションの開発に成功しました。これらのWebアプリケーションの1つの例は、ProfilEpressと呼ばれるWordPressプラグインのテーマ市場です。

上記のリンクされているテーマ市場を詳しく見ると、次の /前のページネーションリンクのURLで明らかなカスタムページネーションシステムを使用していることがわかります。したがって、カスタムポストタイプ(CPT)のクエリで完全に機能する社内ページネーションシステムを構築することができます。

十分に言った、このチュートリアルの目的に取り掛かりましょう。WordPressのカスタム投稿タイプの複雑さを学びましょう。

私が個人的に遭遇した多くのハードルに対処したいと思っています。

カスタムポストタイプ定義

WordPressは、さまざまな種類のコンテンツを保持および表示できます。このようなコンテンツの単一の項目は、一般に投稿と呼ばれますが、

POST

は特定の投稿タイプでもあります。

内部的には、すべての投稿タイプは同じ場所のWP_POSTSデータベーステーブルに保存されますが、post_typeと呼ばれる列で区別されます。

POSTタイプとは、WordPressデータベースの投稿テーブルで維持されているさまざまな構造化されたデータと一緒にグループ化されたものを指します。

投稿タイプの例は、ポスト(ブログ投稿のグループ)、ページ(ページのグループ)、添付ファイル(アップロードされたメディアファイルのグループ)、およびネイティブまたはビルドのリビジョン(ポストリビジョンのグループ)です。 WordPressに

投稿タイプの定義で武装して、WordPressに作成および登録されている新しい投稿タイプは、カスタムポストタイプと呼ばれます。

WordPressを使用して会社またはビジネスのWebサイトを構築している場合、作成できる投稿タイプの例は、ポートフォリオ、証言、製品です。

カスタムポストタイプの概念を理解したので、次はそれらを作成する方法を学ぶことです。

カスタムポストタイプの作成

カスタム投稿タイプを作成するのは非常に簡単です。まず、register_post_type()関数で投稿タイプを登録し、最後に、register_post_type()を関数呼び出しにwrap so soにフックしてください:

上記のコードから、register_post_type()には、カスタム投稿タイプのあらゆる側面をカスタマイズする際に必要な多くの配列引数を受け入れる2番目の関数パラメーターがあります。

これで、ポートフォリオカスタム投稿タイプがWordPress管理ダッシュボードに表示されます。

register_post_type()を呼び出すとき、2番目の引数がオプションであることに注意する価値があります。つまり、CPTは次のように作成できます。
<span><span>function portfolio_cpt() {</span>
</span>
    <span>$args = array(
</span>        <span>'label'  => 'Portfolio',
</span>        <span>'public' => true,
</span>    );

    register_post_type( <span>'portfolio', $args );
</span>}

add_action( <span>'init', 'portfolio_cpt' );</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

この方法でCPTが作成されている場合、管理ダッシュボードメニューには表示されません(直接URLアクセス「http://example.com/wp-admin/edit.php?post_type=でアクセスできますがポートフォリオ「)とそのUIの文言(別の方法ではラベルと呼ばれます)と管理者通知は、組み込みの投稿投稿タイプと同じです。

CPTとそれぞれの関数をカスタマイズするための配列引数のいくつかを見てみましょう。

ラベルWordPressカスタム投稿タイプの決定的なガイド カスタム投稿タイプの複数の記述名。たとえば、映画のCPTを作成している場合、これは映画です。

defortion_post_type()。
<span><span>function portfolio_cpt() {</span>
</span>
    register_post_type( <span>'portfolio' );
</span>}

add_action( <span>'init', 'portfolio_cpt' );</span>
ログイン後にコピー
ログイン後にコピー
>>>>

ラベル

この投稿タイプのラベルの配列。各文字列は、特定の管理ページに表示されるテキストの少しです。

公開用のプラグインを作成している場合は、これらの文字列を翻訳可能にしてください。

  • 名前:投稿タイプの名前の複数形。
  • singular_name:投稿タイプの名前の特異な形式。
  • add_new:新しい投稿を追加するためのメニュー項目。
  • add_new_item:新しい投稿を作成するときに表示されるヘッダー。
  • edit_item:投稿を編集するときに表示されるヘッダー。
  • new_item:管理者ヘッダーのお気に入りのメニューに表示されます。
  • view_item:編集画面のpermalinkに沿って表示されます。
  • search_items:[投稿]画面の[検索]ボックスのボタンテキスト。
  • not_found:管理者の検索で投稿が見つからない場合に表示するテキスト。
  • not_found_in_trash:ゴミに投稿されていないときに表示するテキスト
  • ラベルとその説明の完全なリストはこちらにあります。
説明

投稿タイプが何であるかについての短い説明的な要約ですが、これがWordPress Adminで使用されている場所は見つかりませんでした。

public

ブール値に応じて、特に定義されていない限り、他の引数がどのようなものかを自動的に決定します。一般の議論をより詳細に制御したい場合は、3つの具体的な議論があります。

show_ui:管理スクリーンを表示するかどうかを決定します

publiclyly_queryable:この投稿タイプのクエリをフロントエンドから実行できるかどうかを判断します。

exclude_from_search:検索結果に投稿が表示されるかどうか

    menu_position
  • デフォルトでは、管理者の「コメント」メニュー項目の後に新しい投稿タイプが追加されます。しかし、あなたはそれをあなたの選択の適切な位置に移動する能力が必要です。 たとえば、
  • MENU_POSITION値を70に設定すると、メニュー項目がユーザーの下に追加されます。
  • menu_icon
  • 新しい投稿タイプはデフォルトの投稿メニューアイコンになりますが、代わりにカスタムアイコンが必要な場合は、このラベルをアイコンまたは画像ファイルのURLに設定します。

CPTアイコンとしてDashiconを使用することもできます。

ダウンロードDashiconを使用したいと言って、このラベルを次のようにDashicon値に設定します。

階層

この引数により、CPTの階層を作成するかどうかを決定できます。デフォルト値はfalseです。 CPT階層を作成するためにTRUEに設定します

サポート

サポート引数を使用すると、新しい投稿の編集または作成時に画面に表示されるメタボックスとフィールドの配列を定義できます。これは、デフォルトでタイトルと編集者になります。
<span><span>function portfolio_cpt() {</span>
</span>
    <span>$args = array(
</span>        <span>'label'  => 'Portfolio',
</span>        <span>'public' => true,
</span>    );

    register_post_type( <span>'portfolio', $args );
</span>}

add_action( <span>'init', 'portfolio_cpt' );</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

この引数をfalseに設定すると、デフォルト(タイトルと編集者)の動作が妨げられます。

いくつかの利用可能なオプションがあります:

  • タイトル:投稿タイトルを作成するためのテキスト入力フィールド。
  • 編集者:執筆のためのコンテンツTINYMCEエディター。
  • 著者:投稿者を変更するための選択ボックス。
  • サムネイル:特集画像機能。
  • 抜粋:カスタム抜粋を書くためのテキストアレア
  • トラックバック:トラックバックとピンバックをオン/オフにする能力
  • Custom-Fields:カスタムフィールド入力フィールド。
  • コメント:コメントのオン/オフをめぐる。
  • 改訂:投稿の改訂を許可します。
  • ポストフォーマット:ポストフォーマットを追加し、「投稿フォーマット」セクション
  • を参照してください
  • Page-Attributes:ページに表示される属性ボックス。これは階層の投稿タイプにとって重要なので、親の投稿を選択できます。
Register_meta_box_cb

編集フォームのメタボックスをセットアップするときに呼び出されるコールバック関数を提供します。コールバック関数は、現在編集されている投稿のwp_postオブジェクトを含む1つの引数$ postを取得します。

この機能は、開発者にとって特に役立ち、CPT編集画面に表示されるカスタムメタボックスを作成します。

分類

このカスタムPOSTタイプで使用されるカテゴリやPOST_TAGなどの登録された分類法の配列。
<span><span>function portfolio_cpt() {</span>
</span>
    <span>$args = array(
</span>        <span>'label'  => 'Portfolio',
</span>        <span>'public' => true,
</span>    );

    register_post_type( <span>'portfolio', $args );
</span>}

add_action( <span>'init', 'portfolio_cpt' );</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

has_archive

この引数をTrueに設定すると、カスタム投稿タイプのアーカイブが有効になります。 たとえば、CPTが本であると言って、http://yoursite.com/booksにアクセスすると、本に属する投稿のリストが表示されます。

書き換え
<span><span>function portfolio_cpt() {</span>
</span>
    register_post_type( <span>'portfolio' );
</span>}

add_action( <span>'init', 'portfolio_cpt' );</span>
ログイン後にコピー
ログイン後にコピー

この引数では、単一の投稿またはアーカイブを表示するときに、カスタム投稿タイプのパーマリンク構造を定義できます。

デフォルト値はtrueで、$ post_typeをスラッグとして使用します。書き換えを防ぐために、falseに設定します。

明確なためにいくつかの例を見てみましょう。

レビューのカスタム投稿タイプを作成したが、URLスラグを

>レビュー

から評価

に変更すると、次の書き換え引数を使用すると、http://の例からURLが変更されます。 .com/review/harry-potter/to http://example.com/assessment/harry-potter/単一の投稿とhttp://example.com/review/ to http://example.com/assessment/ CPTアーカイブ。

WordPress URLを書き直すたびに、設定の[変更の変更]ボタンをクリックしてください>>パーマリンクを作成して、書き換えルールを再現します。

したがって、基本的に、スラッグは新しいURLスラッグを定義しますが、withfrontは、パーマリンク構造がフロントベースで事前に塗装されるかどうかを判断します。

まだwith_frontで明確ではありませんか?例を見てみましょう。 下の画像に描かれているように、ブログにURLに追加されたパーマリンク構造があるとします。

WordPressカスタム投稿タイプの決定的なガイド

with_frontがfalseに設定されている場合、単一の投稿と投稿アーカイブのURLはhttp://example.com/blog/assessment/harry-potter/およびhttp://example.com/blog/assessment/になります。しかし、それがTrueに設定されている場合、単一の投稿と投稿アーカイブのURLはそれぞれhttp://example.com/assessment/harry-potter/およびhttp://example.com/assessment/になります。

後者のブログの省略に気づきましたか?それが違いです。

can_export

この引数を使用して、カスタム投稿タイプに属する投稿がWordPressエクスポートツールを介してエクスポート可能かどうかを決定します。デフォルトでは、これはtrueに設定されています。

query_var

この引数では、このタイプの投稿を取得するために使用されるクエリ変数を制御できます。

trueに設定されている場合、example.com/?book=harry-potterを介して本のカスタム投稿タイプをリクエストすることができます。

trueではなく文字列に設定した場合(たとえば、

出版

)、example.com/?publication=harry-potter。 「Query_Var」の警告

qury_varがCPT登録配列引数で未定義の場合、$ post_typeにデフォルトである場合、falseに設定しない限り常に定義されます。

ここに警告があります。 query_varの値がURLにクエリ文字列として追加されると、404につながります。

明確にさせてください。 CPT Query_Varの値がレビューであり、レビューするキーセットを備えたクエリ文字列が次のフォームのいずれかでWordPressサイトの任意のURLに追加されたとします。

http://example.com/?review=some-random-string

http://example.com/a-post-slug-here/?foo=bar&review=some-random-string

  • これにより、404が発生します。
  • 私は実際にこれについて難しい方法で学びました。この問題が発生した時点で、WordPress Core TRACにチケットを作成してバグとして報告しました。
コアWordPressチームの一部のメンバーが私のチケットに返信する前に、最終的にそれを理解するのに数週間かかりました。 プラグインを使用したカスタム投稿タイプのセットアップをスピードアップする

基礎をカバーしたので、WordPressプラグインリポジトリには多くのプラグインがあり、カスタムの投稿タイプの作成が非常に簡単になることを指摘する良い機会です。

例には(ただし、これらに限定されません):

が含まれます

カスタム投稿タイプui

PODSフレームワーク

カスタムポストタイプメーカー

  • 結論
  • このチュートリアルでは、カスタム投稿タイプとそれらの作成方法を学びました。
  • これは、実際にはWordPressカスタム投稿タイプのシリーズの最初のものです。次のチュートリアルでは、さまざまな管理者通知をカスタマイズする方法、ポストタイプにカスタム分類法を登録し、CPT画面にコンテキストヘルプタブを追加する方法を学びます。
  • それまで、ハッピーコーディング!
  • WordPressカスタム投稿タイプに関するよくある質問

    WordPressカスタム投稿タイプを使用することの利点は何ですか?標準の投稿やページを超えて、Webサイトの特定のコンテンツタイプを作成できます。これには、ポートフォリオ、証言、製品などが含まれます。カスタムポストタイプは、コンテンツを管理するためのより組織的で効率的な方法も提供します。特定の機能とフィールドでカスタマイズすることができ、一貫した方法でコンテンツを簡単に入力して表示できます。 WordPressの入力には、テーマのfunctions.phpファイルに数行のコードを追加することが含まれます。 register_post_type()関数を使用する必要があります。これにより、カスタム投稿タイプの名前、ラベル、その他の機能を指定できます。 Permalinks設定ページにアクセスして、新しいカスタム投稿タイプを作成した後に書き換えルールを洗い流すことを忘れないでください。

    カスタム投稿タイプにカスタムフィールドを追加できますか?カスタム投稿タイプに。これは、add_meta_box()関数を使用して実行できます。これにより、新しいメタボックスを投稿編集画面に追加できます。このメタボックスを使用して、カスタム投稿タイプの追加情報を入力および表示できます。テーマに新しいテンプレートファイルを作成して実行します。このファイルは、single- {post-type} .phpという名前で、{post-type}はカスタム投稿タイプの名前です。その後、標準のWordPressループを使用して、カスタム投稿タイプのコンテンツを表示できます。

    プラグインを使用してカスタムポストタイプを作成できますか?カスタム投稿タイプの作成。これらのプラグインは、コーディングを必要とせずに、カスタムポストタイプを作成および管理するためのユーザーフレンドリーなインターフェイスを提供します。いくつかの一般的なオプションには、カスタムポストタイプUI、ポッド、ツールセットタイプが含まれます。

    カスタム投稿タイプに分類法を追加するにはどうすればよいですか? Register_Taxonomy()関数。この関数を使用すると、新しい分類法を作成し、ラベルを指定し、カスタム投稿タイプに関連付けることができます。この分類法を使用して、カスタム投稿タイプのコンテンツを分類してフィルタリングできます。

    階層構造を使用してカスタム投稿タイプを作成できますか?これは、カスタム投稿タイプを登録するときに「階層」引数をtrueに設定することで実行できます。階層的なカスタム投稿タイプには、ページと同様の親と子の投稿があります。

    カスタム投稿タイプの管理インターフェイスをカスタマイズするにはどうすればよいですか?

    カスタム投稿タイプの管理インターフェイスをカスタマイズすることは、カスタム投稿タイプを登録するときに「サポート」引数を使用して実行できます。この引数では、タイトル、編集者、サムネイル、カスタムフィールドなど、ポスト編集画面で使用可能な機能を指定できます。

    はい、ウェブサイトの検索結果にカスタム投稿タイプを含めることができます。これは、カスタム投稿タイプを登録するときに「exclude_from_search」引数をfalseに設定することで実行できます。プラグインまたはカスタムコードを使用して、Webサイトの検索機能をさらにカスタマイズすることもできます。これは、テーマのfunctions.phpファイルからカスタム投稿タイプを登録します。テーマのコードを変更する前に、Webサイトをバックアップすることを忘れないでください。コードを削除した後、Permalinks設定ページにアクセスして、ルールを書き換える必要があります。

以上がWordPressカスタム投稿タイプの決定的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート