[wp]カスタム投稿のarchive.php作成のポイント

単純にメモ。

前提

CPT UIでやる。

Custom Post Type UI
Admin UI for creating custom content types like post types and taxonomies

記事一覧部分

こんな感じ。

<?php
    $myQuery = new WP_Query();
    $param = array(
        'posts_per_page' => -1,
        'post_type' => 'faq',
        'post_status' => 'publish',
    );
    $myQuery->query($param);
    if($myQuery->have_posts()):
?>
<dl class="faq_list">
<?php while($myQuery->have_posts()): $myQuery->the_post(); ?>
    <dt><?php the_title(); ?></dt>
    <dd><?php the_content(); ?></dd>
<?php endwhile; ?>
</dl>
<?php endif; ?>

archive.phpだけど、スラッグとかで指定する。通常の記事一覧みたく表示数を指定してページ送りを仕込めるほか、タクソノミーとかカスタムフィールドを指定した絞り込みも可能。

アーカイブ名を出すのはこう。

<?php the_archive_title(); ?>

割と使う機会が少ないので知らなかったりする。

作成時の注意

CPT UIは自己責任というか、管理能力が低いと詰みがち。

「投稿タイプスラッグ」は固定ページのURLスラッグと被ってたら干渉するので、被らないように気をつける。

「アーカイブあり」が「偽」になってるとarchive.phpが使えないので注意。逆手に取って固定ページで一覧を作るのも有りだけど。

投稿タイプとタクソノミーを同名にしない。しても動くけど、たまに凝ったことをしたいときに干渉することがあった。根本の部分まで調査してないから詳しくは分からないけど、とりあえず違う名前にした方がいい。

「投稿タイプスラッグ」を変更する場合、「投稿を改名後の投稿タイプへ移行しますか ?」のチェックを忘れない。既に投稿した記事があった場合、移し替えるのをミスるとめんどくさい。

コメント

タイトルとURLをコピーしました