【wordpress】カスタム投稿の方法と一覧表示とページネーション

2016年07月17日

  1. TOP
  2. BLOG
  3. PHP
  4. 【wordpress】カスタム投稿の方法と一覧表示とページネーション

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);
 ?>