カスタム投稿タイプの親子関係

公開: 2020-08-18

整理されたWordPressウェブサイトを持ちたくないのは誰ですか? これが、カスタム投稿タイプが重要である理由です。 CTPを使用すると、データを分離して簡単にアクセスし、必要に応じて更新することができます。 ただし、このコンテンツを整理して階層を設定できるようになったのは、カスタム投稿タイプの親子関係です。 しかし、親子関係について話す前に、最初から始めましょう。

待望のCPT

WordPressを更新することが重要である理由がわからない場合は、明らかな例を次に示します。 何年も待った後、WordPress 3.0が登場したとき、ようやくカスタム投稿タイプを作成できるようになりました。 そして、これは本当にあなたができるだけ早く知りたいと思った機会でした。 これにより、WordPressWebサイトは単純なブログプラットフォームから強力な制御管理システムに変わりました。 ほんの数行のコードで、独自のタイプを持つことができます。

カスタム投稿タイプの親子関係に入る前に、まず、カスタム投稿タイプとは何かを見てみましょう。

CPTとは何ですか?

カスタム投稿タイプのCPTはコンテンツと見なすことができます。 「投稿」という用語は、ブログ投稿ではないため、混乱する可能性があります。 CPTは任意のコンテンツにすることができ、それらを定義するための厳密なルールはありません。 明らかに、デフォルトとカスタムの投稿タイプがあります。 デフォルトの投稿タイプは、ブログ投稿、ページと添付ファイル、リビジョン、およびナビゲーションメニューです。

一方、カスタム投稿タイプを使用すると、情報を作成、保存、編集するためのよりクリエイティブな制御が可能になります。

カスタム投稿タイプとブログ投稿を混在させないでください。 ブログ投稿の構造と階層を作成する場合は、WordPressにカテゴリとサブカテゴリを自由に使用できます。

カスタム投稿タイプに使用

WordPressのデフォルトの投稿タイプはありますが、それ以上のものが必要な人もいます。 カスタム投稿タイプが役立つ例を次に示します。

  • イベントの種類と会場を含むイベントリストサイト
  • 不動産リスト
  • 製品オプションを備えたEコマースサイト
  • チケットシステム
  • デザインギャラリーまたはショーケース

これらのアイデアは提案の一部にすぎないことに注意してください。 カスタム投稿タイプを使用できるアイデアは他にもたくさんあるので、想像力を駆使してください。

親子関係と投稿

[設定]に移動して[階層]オプションを有効にすると、投稿をページのように動作させ、親子関係を取得できるようになります。 たとえば、「drink」という名前の投稿タイプと「liquor」の親ページ、および「vodka」の子ページがあるとします。 「ウォッカ」の投稿を表示すると、URLは次のようになります:yoursite.com/drink/liquor/vodka/

基本的に、これは投稿タイプ内の投稿にのみ影響し、相互に関連する他の投稿タイプには影響しません。 たとえば、「飲み物」の投稿タイプは、「食べ物」の投稿タイプの子ではありません。

オプションの制限

投稿の関係について話すとき、WordPressはほとんど提供しません。 実際、カスタムタイプの投稿の親子関係は、WordPressがサポートする唯一の種類の関係です。 ただし、カスタム投稿タイプを親にし、別のカスタム投稿タイプを子にするのは難しいように思われるかもしれません。

WordPress。
WordPressは、カスタム投稿タイプの親子関係のみを許可します

これは1つのプロジェクトの例で、さまざまな投稿タイプを確認し、子の投稿を親の投稿に割り当てることができます。

  • 「Neighborhood」という名前のカスタム投稿タイプ
  • この近隣内の場所には、「場所」という名前のカスタム投稿タイプがあります
  • これらのカスタム投稿タイプは非階層的であることに注意してください
  • 目標は、各場所を近隣に割り当てることです。これにより、親が投稿します。

親投稿の割り当て

うまくいけば、今では、投稿の種類について少し知っていて、それらがどのように機能するかを知っています。 ただし、親の投稿を割り当てるには、少しコーディングする必要があります。 WordPressのショートコードに慣れていない場合は、基本を理解してください。 親の投稿を割り当てるには、プラグインの管理ファイルに次のコードを追加するだけでよいので、基本は十分です。

カスタム投稿タイプで親子関係を作成するために必要なラップトップ上のコード
コーディングの時間

説明のために、ここではフラットポストタイプのNeighborhoodとPlaceを使用します。 そして今、それはコーディングの時間です:

 /* Hook meta box to just the 'place' post type. */ add_action( 'add_meta_boxes_place', 'my_add_meta_boxes' ); /* Creates the meta box. */ function my_add_meta_boxes( $post ) { add_meta_box( 'my-place-parent', __( 'Neighborhood', 'example-textdomain' ), 'my_place_parent_meta_box', $post->post_type, 'side', 'core' ); } /* Displays the meta box. */ function my_place_parent_meta_box( $post ) { $parents = get_posts( array( 'post_type' => 'neighborhood', 'orderby' => 'title', 'order' => 'ASC', 'numberposts' => -1 ) ); if ( !empty( $parents ) ) { echo '<select name="parent_id" class="widefat">'; // !Important! Don't change the 'parent_id' name attribute. foreach ( $parents as $parent ) { printf( '<option value="%s"%s>%s</option>', esc_attr( $parent->ID ), selected( $parent->ID, $post->post_parent, false ), esc_html( $parent->post_title ) ); } echo '</select>'; } }

投稿タイプ名を独​​自の投稿タイプに変更することを忘れないでください。 コードをよりよく理解し、Webサイトで使用するために、GitHubの別の例を参考にしてください。

関係を投稿する

カスタム投稿タイプの親子関係は便利ですが、非常に制限されています。 より複雑なソリューションが必要な場合は、他の場所を探す必要があります。 それらは、投稿関係の同様の効果を達成するのに役立つプラグインです。

子供とタブレットを持つ母親。
あなたにより良い絵を与えるために

なぜポストリレーションシップが必要なのですか?

サイトの投稿間に接続を作成する場合は、基本的に投稿の関係を使用します。 そして、それらが非常に優れている理由は、高度なWebサイトを作成できるようにするためです。 カスタム投稿タイプの投稿を相互に接続すると、データの重複を回避でき、すべての人が情報を2回以上編集する必要がなくなります。 また、時は金なりなので、ありふれた仕事を避けるのに役立つ方法が必要です。

カスタム投稿タイプで親子関係を使用する利点

カスタム投稿タイプで親子関係を使用することの明らかな利点の1つは、サイトを並べ替えることができることです。 そして、検索エンジンとユーザーは、組織化された構造のサイトを気に入っています。 ただし、これのメリットを実際に体験するには、適切な計画を作成し、それに固執する必要があることに注意してください。