5. クエリの変更
クエリを変更する
【重要】ループの動作について
- トップページ → 投稿記事があるだけ投稿記事の内容を表示し、繰り返す
- 固定ページ → クリックした固定ページの記事を1度だけ表示する
- 個別ページ → クリックした個別ページの記事を1度だけ表示する
<?php
$param = array(
'post_type' => 'post', //カスタム投稿タイプの名称、post(投稿)、page(固定ページ)
'posts_per_page' => 10, //1ページに表する数
//'order' => 'DESC', //並び順
//'orderby' => 'date' //何を基準に並べるか
//'cat' => 5, //カテゴリーIDで絞り込む
//'category_name' => 'staff', 'news', //カテゴリースラッグで絞り込む
//'page_id' => 1, //固定ページID
//'pagename' => 'sample-page', //固定ページスラッグ
);
$the_query = new WP_Query($param);
if($the_query->have_posts()): while($the_query->have_posts()) : $the_query->the_post();
?>
<!--ここに表示するものを入力-->
<?php endwhile; endif; ?>
<?php wp_reset_postdata(); ?>
カスタム投稿を使う (functions.php)
function my_custom_init01() {
register_post_type(
'press', //投稿タイプ名(識別子)
array(
'label' => 'プレス', //カスタム投稿タイプの名前(管理画面の表示)
'hierarchical' => false, //階層構造にするかどうか(投稿記事と同じ時系列)
'public' => true, // 管理画面とサイト上に表示する
'has_archive' => true, //trueにすると投稿した記事の一覧ページを作成
'menu_position' => 5//「投稿」の下に追加
)
);
//タクソノミーの追加
register_taxonomy(
'press_tax', // 追加するタクソノミー名(英小文字とアンダースコアのみ)
'press', // どのカスタム投稿タイプに追加するか
array(
'label' => 'カテゴリ', // 管理画面上に表示される名前(投稿で言うカテゴリー)
'labels' => array(
'all_items' => 'カテゴリ一覧', // 投稿画面の右カラムに表示されるテキスト(投稿で言うカテゴリー一覧)
'add_new_item' => '新規カテゴリを追加' // 投稿画面の右カラムに表示されるカテゴリ追加リンク
),
'hierarchical' => true // タクソノミーを階層化するか否か(子カテゴリを作れるか否か)
)
);
flush_rewrite_rules( false );
}
add_action( 'init', 'my_custom_init01' );
カスタム投稿について
カスタム投稿とは、既定の投稿欄以外に、ダッシュボード上で投稿できるメニューのこと
- functions.php に、上記、カスタム投稿登録のコードを追加する
- ダッシュボード上でメニューが追加されたことを確認する
- カスタム投稿記事を表示したい場所(テンプレート)に、WP_Queryを使ってクエリを変更したループを使用する。
- カスタム投稿の個別ページの優先順位は、single-ポストタイプ.php ⇒ single.php
- カスタム投稿の一覧ページは、下記となる。
URL / http://トップページのURL/ポストタイプ
例) http://localhost/wp/pressテンプレート archive-ポストタイプ.php ⇒ archive.php