サポート » 開発版 » カスタム投稿タイプのアーカイブ用テンプレート

  • 解決済 tonoro

    (@tonoro)


    もうそろそろ3.1が正式公開かと思いますので、rc3にて動作確認中です。
    掲題の件について、

    1. 「shop」というカスタム投稿タイプを作成
    2. http://example.com/?post_type=shopでアクセス

    この場合、表示に用いられるテンプレートは、WordPress テンプレート階層構造図によると

    archive-shop.phpというテンプレートファイルがあればそれを使用、なければarchive.php、archive.phpもなければindex.php

    となると思いますが、デフォルトのテーマのindex.phpをコピーしてarchive-shop.phpを作成しても、index.phpが真っ先に読み込まれているようです(それぞれのphpファイル内に、ファイル名をコメントアウトして確認)。

    また、index.php内でget_archive_template()をechoした結果は、
    [フルパス]/wp-content/themes/twentyten/archive-shop.php
    となります。

    カスタム投稿タイプの一覧表示用のテンプレートを
    archive-○○○.php
    の形で使用する場合、何か特別な設定が必要なのでしょうか?

    ■付加情報■

    • テーマ:Twenty Ten 1.2
    • パーマリンク設定:デフォルト
    • カスタム投稿タイプはプラグイン「Easy Post Types」で作成
    • サーバーは「heteml.jp」

    因みに現在(3.0)は「Custom Post Type Archive」というプラグインで、使用するテンプレートと表示するURLをカスタマイズしています。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • プラグインの利用ではないので参考にならないかもしれませんが…

    functions.php にカスタム投稿タイプを設定しています。
    register_post_type() の引数に、has_archive 加えれば archive-***.php が適用されるようになります。

    ‘has_archive’ => true

    これをいれないと、やはり index.php が読み込まれてしまいますね。
    また、文字列で指定すると、そのURLで表示できるようにもなります。

    has_archive’ => ‘shop-archive’
    ┗ URL : http://example.com/shop-archive

    プラグインのソースを追っていって、has_archive がなければ未対応(または僕の勘違い)ということではないでしょうか。

    たしか、以前にあったなぁ・・・と思って調べてみました。
    http://ja.forums.wordpress.org/topic/3871?replies=5
    内部的にはまだ動作するようになってないのではないでしょうか?(なんか、へんな日本語)

    あら、ごめんなさい。かぶってしまいました。
    さらに、解決っぽいですね。

    トピック投稿者 tonoro

    (@tonoro)

    >LVP8様、kvex様
    レスありがとうございます。

    >内部的にはまだ動作するようになってない
    ということなのですね。

    プラグインのソース内に「has_archive」がありませんでしたので、
    archive-○○○.php
    を使いたければ、

    • プラグインを使わずにカスタム投稿タイプをfunctions.phpに書く or
    • has_archiveを設定するプラグインを使う

    ということですね。

    お教えいただきありがとうございましたm(_ _)m

    私も同じ状況になって困ってたのですが、
    もしCustom Post Type プラグインを使用してる場合、
    ダッシュボードメニューのCustom Post Type > Manage Post Typesから
    それぞれの投稿タイプ名のedit > Advanced Optionsで、
    「Has Archive」の項目を「true」に変更しSave Custom Typeでarchive-[投稿タイプ名].phpが使用できるようになりました。

    長々とすいません。報告までに。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「カスタム投稿タイプのアーカイブ用テンプレート」には新たに返信することはできません。