Wordpress 1

5. クエリの変更

クエリを変更する

【重要】ループの動作について

  • トップページ → 投稿記事があるだけ投稿記事の内容を表示し、繰り返す
  • 固定ページ → クリックした固定ページの記事を1度だけ表示する
  • 個別ページ → クリックした個別ページの記事を1度だけ表示する
<?php
$param = array(
    'post_type' => 'member', //カスタム投稿タイプの名称、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にすると投稿した記事の一覧ページを作成
			'supports' => array( //記事編集画面に表示する項目を配列指定
			'title', //タイトル
			'editor', //本文
			'thumbnail', //アイキャッチ
			'excerpt', //抜粋
			'custom-fields'
			),
		'menu_position' => 5//「投稿」の下に追加
		)
	);
	//タクソノミーの追加
	register_taxonomy(
		'example_taxonomy',  // 追加するタクソノミー名(英小文字とアンダースコアのみ)
		'press',  // どのカスタム投稿タイプに追加するか
		array(
			'label' => 'テストタクソノミー',  // 管理画面上に表示される名前(投稿で言うカテゴリー)
			'labels' => array(
				'all_items' => 'タクソノミー一覧',  // 投稿画面の右カラムに表示されるテキスト(投稿で言うカテゴリー一覧)
				'add_new_item' => '新規タクソノミーを追加'  // 投稿画面の右カラムに表示されるカテゴリ追加リンク
			),
			'hierarchical' => true  // タクソノミーを階層化するか否か(子カテゴリを作れるか否か)
		)
	);
	flush_rewrite_rules( false );
	}
	add_action( 'init', 'my_custom_init01' );

カスタム投稿について

カスタム投稿とは、既定の投稿欄以外に、ダッシュボード上で投稿できるメニューのこと

  1. functions.php に、上記、カスタム投稿登録のコードを追加する
  2. ダッシュボード上でメニューが追加されたことを確認する
  3. カスタム投稿記事を表示したい場所(テンプレート)に、WP_Queryを使ってクエリを変更したループを使用する。
  4. カスタム投稿の個別ページの優先順位は、single-ポストタイプ.php ⇒ single.php
  5. カスタム投稿の一覧ページは、下記となる。

    URL / http://トップページのURL/ポストタイプ
    例) http://localhost/wp/press

    テンプレート archive-ポストタイプ.php ⇒ archive.php