2017-09-21 12 views
0

私はカスタムポストタイプを必要とするプロジェクトに取り組んでいます。 また、すべての種類の投稿/ページタイプで動作するブレッドクラムが必要です。テンプレートを使用してカスタムポストタイプを作成する方法

問題は、「スタートページ」といくつかの子ページを持つカスタムポストタイプを実現するための良い方法を見つけていないことです。

私の世界では、私はテンプレートにリンクする通常のページ(「車」と呼ぶ)を設定したいと思います。テンプレートは何とかカスタムポストタイプに接続する必要があります。カスタムポストタイプでポストを作成し、そのポストに行くと、http://test.com/cars/BMWのようになります。

他の問題は、私がページhttp://test.com/cars/bmwにいるとき、WordPressがBMWページをポストと車として認識するので、私のページの祖先がBMWページにあるものを見るために何を実行するのか?ページ。

ここで私が何を意味しているのか分かりませんが、チェーン内のすべてのページ/ポストにアクセスしたり認識したりできるようにカスタムポストタイプで完全なチェーンを実現するにはどうすればよいですか?また、これは主にブレッドクラムが動作するためのもので、このチェーンの標準的な最初のページの「車」が必要なので、サイトに表示される標準のWYSIWYGにコンテンツを書き込むことができます。

ありがとうございます。

答えて

0

を使用すると、ポストタイプを登録すると、あなたはhas_archiveがtrueに設定されて、あなたのURLのベースに使用されますslugを指定

を更新しました。この場合、archive-{slug}.phpファイルを使用してアーカイブをスタイルすることができます。

代わりにカスタムページを使用する場合は、has_archivefalseである必要がありますが、このCPTポストからこの「偽の親」を識別する信頼できる方法はありません。

最適なオプションは、カスタム設定ページに設定を導入することです。ユーザーは、CPTのアーカイブに使用するページを選択できます。パン粉の世代では、その後、

などの代わりにハードコードまたはURLの文字列操作のあなたのCPTを、この設定値を使用したい:

register_post_type('cars', [ 
    'labels'    => [ 
     'name'   => 'Cars', 
     'singular_name' => 'Car' 
    ], 
    'supports'   => ['title', 'editor', 'author', 'thumbnail', 'comments', 'revisions'], 
    'taxonomies'   => ['category', 'post_tag'], 
    'public'    => true, 
    'exclude_from_search' => false, 
    'has_archive'   => false, 
    'rewrite'    => ['slug' => 'cars'] 
]); 

あなたが書き換えルールに影響する設定を変更した後、ダッシュボード]> [設定]>に移動しますパーマリンクページを開き、[保存]をクリックしてキャッシュを再構築します。

+0

こんにちは、おかげです。しかし、アーカイブページにコンテンツを追加するwysiwygエディタを用意したいのであれば、それをどのように達成するのですか? – Daniel

+0

それは難しいです。特別なコンテンツのためだけに "特別な"ポストやページ、あるいは新しいCPTを作成し、ポストIDで 'archive-cars.php'ファイルにプルすることができます。ダッシュボードに特別なテーマ設定ページを作成して「余分な」コンテンツを作成することもできます。あるいは ''has_archive' => false'を設定して前と同じようにページに追加することができますが、そのページのテンプレートでカスタムWPクエリを実行して投稿を引き出す必要があります。 – crean

+0

私は '/ cars /'について普通のページでなければならないことについて少し懐かしく思っています。この場合、breadcrumbsの場合、 'has_archive'は' false'でなければなりません。単一の車のページから「偽の親」ページのスラグを確実に識別する方法はありません。最も信頼できるのは、現在のパーマリンクをつかんで、最後のパス部分をカットするための文字列操作です。 – crean

関連する問題