WordPressの基本事項は過去記事に記載
WP基本事項
投稿ページ一覧作成
参考記事
デフォルトでは投稿記事の一覧ページはトップページになっている為、ベット投稿ページ一覧を作りたいときは以下のコードをfunctions.phpへ記入する。
/* 投稿アーカイブページの作成 */
function post_has_archive( $args, $post_type ) {
if ( 'post' == $post_type ) {
$args['rewrite'] = true;
$args['has_archive'] = 'blogs'; //任意のスラッグ名
}
return $args;
}
add_filter( 'register_post_type_args', 'post_has_archive', 10, 2 );
この後、管理画面の「設定」→「パーマリンク設定」→「変更を保存」をクリックすることで、
http://ブログサイトのURL/blogs/
で投稿記事のアーカイブページが表示されるようになる。
特段設定していなければarchive.phpがあればそれにあてがわれる。
詰まった所
- カスタム投稿の一覧や通常の投稿一覧にページネーションを作成した時詰まった話。
作成する際、phpのファイル上で
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$the_query = new WP_Query(array(
'post_status' => 'publish',
'post_type' => 'work', //カスタム投稿タイプ名
'paged' => $paged,
'posts_per_page' => 3, // 表示件数
'orderby' => 'date',
'order' => 'DESC'
));
if ($the_query->have_posts()) : ?>
上記の様に表示件数を3件にしていたが、管理画面の設定では1ページに表示する記事を4件としていた。
そしてたまたま、投稿記事数が4件出会った為、phpファイル上では3件表示になってページネーションでの遷移先hoge.com/work/page/2
は存在しないと表示された。
これは管理画面では1ページに割り当てされるのが4件のため、page/2が生成されていなかった。
WPの作成時はphpファイルと管理画面の紐付きも考慮が必要。