私はプラグインとしてカスタム投稿タイプを作成することを実験してきました(私はこれがさまざまな場所で推奨されるのを見たので)。
しかし、私は質問howについてではなく、むしろなぜについてはプラグインとしてCPTを構築することについて)を持っています。
はい...プラグインとしてCPTを追加することは私のfunctions.php素晴らしいそしてきちんとしておきます。
しかし...
has_archive
を有効にしたとしたら、まだarchive-cpt.php
を作成する必要がありますね。single-cpt.php
を作成する必要があります。私がこれを正しく理解すれば、
archive-cpt.php
とsingle-cpt.php
ページを削除する(あるいは隠すか何かする必要があります).私は、CPTをデフォルトのループに追加するという問題にも触れていません(そしてそれはプラグインベースのcptにも影響します)。
それで、なぜCPT plugin?
toschoの答えはあなたのCPTをプラグインで定義する技術的な理由に関しては正しいです、しかしあなたの質問の多くはテンプレート階層の誤解から生じているように私には思えます。ほとんどではありませんが、これまでに見たテンプレートファイルはすべてオプションです。
基本的なindex.phpテンプレートファイルを除いて、テーマ開発者は特定のテンプレートファイルを実装するかどうかを選択できます。 WordPressが一致する名前のテンプレートファイルを見つけられない場合は、階層内の次のファイル名にスキップします。 WordPressが一致するテンプレートファイルを見つけられない場合は、index.php(テーマのホームページテンプレートファイル)が使用されます。
WordPressは、特定の特殊化ファイルが存在する場合はそれを使用しますが、特殊化ファイルが存在しない場合は別のファイル(最終的にはindex.php
)にフォールバックします。あなたのテーマはあなたのプラグインのCPTを処理したり補うために特別な何かを実装する必要はありません。テーマはcanですがする必要はありませんはしません。
has_archive
を有効にしたとしたら、まだarchive-cpt.php
を作成する必要がありますね。
いいえ、archive.php
が使用され、それが失敗した場合はindex.php
- また、CPTを表示するにはカスタムループを作成する必要があるので、
single-cpt.php
を作成する必要があります。
繰り返しますが、いいえ。同じ理由。 single.php
が使用され、使用されない場合はindex.php
。
- そして、これらのファイルを作成する必要がありますテーマ内、そうですか?
はい、でもオプションです。あなたはそれらをまったく必要としません。
- プラグインを無効にした場合: Istill
archive-cpt.php
ページとsingle-cpt.php
ページを削除する必要があります。
いいえ、あなたは何もする必要はありません。テンプレートは使用されません。
- テーマを切り替えた場合 :私はまだこれら2つのページを新しいテーマに追加する必要があります。右?
違う。テンプレートはオプションです。投稿タイプに合わせてカスタマイズした表示が必要な場合にのみ必要です。
テーマとCPTがあなたの質問がそれを思わせるほど密接に関連していないことをあなたが理解するとき、他の論理のいくつかはもう少し理にかなっているはずです。
定数SHORTINIT
がTRUE
(カスタムAJAXハンドラー、インポーターまたはAPI)に設定されている場合、テーマはロードされません。そのようなカスタム投稿タイプに投稿を追加することはできません。分類学。
テンプレートは、カスタムコンテンツのviewsであり、ロジックを定義したり、依存したりしないでください。
また、テーマの切り替え後、ユーザーは投稿タイプのコンテンツにアクセスして変更できなくなります。これは、登録なしではインターフェースが存在しないためです。
pluginを無効にした後、テーマを変更する必要はありません。テンプレートは使用されなくなりました。
更新:プラグインのもう1つの利点は、プラグインをアクティブ化できることですネットワーク全体。私は Multilingual Press の主な開発者であり、カスタム投稿タイプの投稿を翻訳して接続する機能をユーザーに提供しています。ただし、テーマが常にアクティブであるため、テーマにバインドされている場合、これは機能しませんサイトごとネットワーク全体ではありません。テーマ投稿タイプは翻訳するのが本当に難しいです。