カスタム投稿

カスタム投稿

皆さんこんにちは!今晩は!!ロト君です。今回は初めてカスタム投稿を自作してみたので、備忘録を掲載したいと思います。

1.カスタム投稿とは

カスタム投稿は、自分で投稿する時に投稿する内容に応じて書きやすいようにカスタマイズできる機能の事です。

お知らせ専用や、商品専用などと言ったモノに活用出来ます。

尚、通常の投稿はカスタム投稿で言うと『post』と言う形式になります。

2.カスタム投稿の作り方

カスタム投稿の母体は、functions.php中に記載します。

今回作ったカスタム投稿は下記のモノです。

<?php
// カスタム投稿タイプの追加
add_action( 'init', 'create_post_type' );
	function create_post_type() {
		register_post_type( 'news_post', // 投稿タイプ名の定義
			array(
				'labels'        => array(
					'name'          => __( 'お知らせ', 'workers_theme' ),	// 表示する投稿タイプ名
					'singular_name' => __( 'news_post', 'workers_theme' ),
				),
				'supports'      => array( 'title', 'editor', 'thumbnail' ),
				'public'        => true,
				'has_archive'   => true,
				'show_in_rest'  => true,
				'menu_position' => 5,
			)
		);
register_taxonomy_for_object_type('category', 'news_post');
register_taxonomy_for_object_type('post_tag', 'news_post');
	}
?>

上記のコード中にグーテンベルクの有効化、サムネイルの有効化、カテゴリー、タグの有効化も行っています。

3.カスタム投稿のクエリ

実際に、home.php中などに表示するにはループ中にクエリを走らせなくてはいけません。私の場合はこんな感じで記載しました。

		<?php
			$args = array(
				'post_type' => array( 'post', 'news_post' ),
				'paged'     => get_query_var('paged')
			);
			$query = new WP_Query( $args );
		?>
		<?php if( $query->have_posts() ) : while( $query->have_posts() ) : $query->the_post(); ?>

上記の様に記載した後はクエリのリセットをしなくてはいけないので、ループ後下記のモノを追記します。

<?php wp_reset_postdata(); ?>

上記の様にすれば、ループさせたpostをリセットします。

他にも、ループ中にページャーを実装するにはこんな感じに記載します。

	<div class="pager">
		<?php echo paginate_links( array(
			'type' => 'list',
			'mid_size' => '1',
			'prev_text' => '<i class="fas fa-angle-left"></i>',
			'next_text' => '<i class="fas fa-angle-right"></i>',
			'total' => $query->max_num_pages
		) ); ?>
	</div>

ここで重要だったのはtotalに$queryデータを渡す所でした。

いくらやっても上手くいかず、困惑していたらこの記述をしていませんでした。

4.まとめ

カスタム投稿などはfunctions.phpを基に作られるようなので、決まったテーマ内でしか有効にならないようです。

データベース上のpost_typeに作ったデータは残りますが・・・・。

オリジナルのテーマなどを作成するのでしたら、割かし使える機能だと思います。

私は今まで、上記の役割を投稿のカテゴリーで行っていました。

postタイプで投稿を割り切るか、カテゴリーで割り切るかは自由だと思います。

自分に合ったクエリ方法を上手く使って、楽しいWordPressライフを送りましょう!では、今回はここまで(>ω<)ノシ

WordPressカテゴリの最新記事