サポート » 使い方全般 » カスタム投稿一覧にpage-スラッグ.phpを使用したい

  • 解決済 suca06

    (@suca06)


    testというカスタム投稿のアーカイブページ(カスタム投稿の一覧ページ)用にarchive-test.phpを表示させましたが、これをやめてpage-test.phpの固定ページ用のテンプレートを表示させたいです。

    どのようにすればpage-test.phpをカスタム投稿アーカイブページとして表示できますでしょうか?

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • moyo55

    (@moyo55)

    単に中身を入れ替えたいというだけであればpage-test.phpのファイル名をarchive-test.phpに変更(要するに内容の差し替え)すれば自動的に読み込まれます。
    ただ、ファイル構成はテーマ事に全く違うので、使用しているテーマの仕組みを理解した上で差し替え等の作業を行わないと表示エラー等に繋がります

    例えば私が使っているテーマLuxeritasの場合は、アーカイブ表示にはarchive.php、loop-xxx.php、list-xxx.phpという三種類のファイルを使用しています。
    そのため、カスタム投稿に限らずアーカイブの表示をカスタマイズする際には表示内容に応じてこれら3種のファイルに手を加えることになります。

    トピック投稿者 suca06

    (@suca06)

    返信ありがとうございます。

    中身を入れ替えたいわけではなく、
    page-test.phpを読み込ませたいのです。
    そのため中身は空(どのページが読み込まれたかわかるようにテキストで目印をつけたページ)で大丈夫です。

    archive-test.phpの使用だと、カスタムメニューのカレント表示がされないや、使用したいプラグインがカスタム投稿の場合だと使用不可になっていたりと、いろいろ不都合があり、固定ページ用のテンプレートととして扱いたいと思っています。

    トピック投稿者 suca06

    (@suca06)

    https://senoweb.jp/note/customposttype-page-paging/
    固定ページでカスタム投稿タイプのアーカイブを出力する

    これをしたいのですが、プラグインの使用なしで実現したいと思っています。

    moyo55

    (@moyo55)

    「固定ページでカスタム投稿タイプのアーカイブを出力」であれば、
    pageテンプレート内にカスタム投稿アーカイブを呼び出す記述をしてテンプレート設定するか
    カスタム投稿アーカイブを呼び出すショートコードをつくって固定ページ内で呼び出すか
    をするのが無難だと思います。

    直接記述の場合は、page-test.phpのコンテンツ呼び出し部分( the_content() )あたりに

    <?php
    $args = array(
    	'paged' => $paged,
    	'post_type' => 'test',  //カスタム投稿タイプ名
    	'posts_per_page' => 2, // 表示件数
    	'post_status' => 'publish',
    	'orderby'     => 'date',
     	'order' => 'DESC'
    );
    ?>
    <ul>
    <?php $myposts = new WP_Query($args);
    if($myposts->have_posts()): while($myposts->have_posts()): $myposts->the_post();
    ?>
        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php endwhile; endif;?>
    </ul>

    を記述して、固定ページをつくってテンプレート指定すれば固定ページでカスタム投稿のアーカイブが表示されます。
    (リンク先の記述にpagedや並び順の設定などを追加しています)

    ページネーションをつける場合は wordpress カスタム投稿で 2ページ目以降が404になってしまう というブログの記事が参考になるかと。

    カスタム投稿タイプにtestという名前をつけていて固定ページのパーマリンクをtestにしたい場合は、
    functions.phpに記述したカスタム投稿のhas_archiveをfalseにしないとスラッグのバッティングが発生します。

    • この返信は3年前にmoyo55が編集しました。
    トピック投稿者 suca06

    (@suca06)

    ありがとうございます!!!!!!!!!!!!!!!!!!!!!!!!!!
    has_archiveをfalseにしただけで目的達成できました!

    本当に助かりました!感謝しきれません!!!!!一生忘れません1!!!

    トピック投稿者 suca06

    (@suca06)

    解決しました!ありがとうございます!

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「カスタム投稿一覧にpage-スラッグ.phpを使用したい」には新たに返信することはできません。