wordpressでカスタム投稿の実装が必要なことがあり、管理画面にカスタム投稿の実装、そして固定ページでの一覧表示とページネーションの実装までをまとめました。
管理画面にカスタム投稿を実装
function.phpに以下を書くことで管理画面の左メニューに『店舗情報』というカスタム投稿用のリンクが生成されます。
add_action('init', 'add_shop_post_type'); function add_shop_post_type() { $title = '店舗情報'; $name = '店舗'; $postName = 'shop'; $params = array( 'labels' => array( 'name' => $title, 'singular_name' => '', 'add_new' => '新規追加', 'add_new_item' => $name.'を新規追加', 'edit_item' => $name.'を編集する', 'new_item' => '新規'.$name, 'all_items' => $name.'一覧', 'view_item' => $name.'の説明を見る', 'search_items' => '検索する', 'not_found' => $name.'が見つかりませんでした。', 'not_found_in_trash' => 'ゴミ箱内に'.$name.'が見つかりませんでした。' ), 'public' => true, 'has_archive' => true, 'supports' => array( 'title', ) ); register_post_type($postName, $params); }
『supports』に入力させたい項目を設定します。項目はwiki参照してください。
固定ページに一覧を実装
固定ページには以下の様に記述します。
1ページあたり10件表示をする設定にしていますので、変更したい場合はposts_per_pageの値を変更してください。
get_query_var( 'paged' ) ? intval( get_query_var( 'paged' ) ) : 1, 'post_type' => 'shop', 'posts_per_page' => 10 )); if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
ページネーションを実装
続いてページネーションはこのように
max_num_pages = $the_query->max_num_pages; $args = array ( 'prev_text' => '', 'next_text' => '', 'show_all' => false, 'mid_size' => 1, 'type' => 'list' ); the_posts_pagination($args); ?>