今回は、前回の続きで、取得する件数の制御を追加したいと思います。

wordpressのマルチサイトで各サイト(ブログ)の記事を混ぜて一覧表示する

  1. wordpressのマルチサイトで各サイトの記事を混ぜて表示する方法を考える
  2. MySQL – サイト毎に分かれている投稿テーブルを1つにまとめる
  3. MySQL – ブログIDを追加する
  4. MySQL – 1つにまとめたデータを投稿日順に並び替える
  5. MySQL – 1つにまとめたデータに取得件数を指定する
  6. 完成版(ページングなし) – wordpressのマルチサイトで各サイトの記事を混ぜて一覧表示する

スポンサーリンク

はじめに

前回までのつづき

今回やりたいこと

  • 取得する件数を5件にする

シリーズを通してやりたいこと / ゴール

制作環境 / テスト環境

  • wordpress サブディレクトリ型のマルチサイト

情報

今回は、下記の条件・情報でおこないたいと思います。

取得する件数を指定する

前回までで、日付順の並び替えまでできました。

今回、表示したいのがページングなしの5件表示にしたいので、取得するデーターを5件にしたいと思います。

「LIMIT」で取得件数を指定する

前回で追加した「ORDER BY」の後に追加します。

SELECT *
	FROM
	(
		SELECT
			wp_posts.ID,
			wp_posts.post_date,
			wp_blogs.blog_id
		FROM wp_posts
		INNER JOIN wp_blogs
			ON (
				wp_blogs.blog_id = 1
			)
		WHERE post_status = 'publish'
		AND post_type = 'news'

		UNION ALL

		SELECT
			wp_2_posts.ID,
			wp_2_posts.post_date,
			wp_blogs.blog_id
		FROM wp_2_posts
		INNER JOIN wp_blogs
			ON (
				wp_blogs.blog_id = 2
			)
		WHERE post_status = 'publish'
		AND post_type = 'post'

		UNION ALL

		SELECT
			wp_3_posts.ID,
			wp_3_posts.post_date,
			wp_blogs.blog_id
		FROM wp_3_posts
		INNER JOIN wp_blogs
			ON (
				wp_blogs.blog_id = 3
			)
		WHERE post_status = 'publish'
		AND post_type = 'info'
	) u
	ORDER BY u.post_date DESC
	LIMIT 5

 

wordpressのDBを確認するには管理画面から確認できる「ARI Adminer」が便利です!

まとめ

ようやくSQL文が用意できました!

次回は、このSQL文を使用してwordpressで記事を取得して表示するところまでやりたいと思います。
続きはこちら

wordpressのマルチサイトで各サイト(ブログ)の記事を混ぜて一覧表示する

  1. wordpressのマルチサイトで各サイトの記事を混ぜて表示する方法を考える
  2. MySQL – サイト毎に分かれている投稿テーブルを1つにまとめる
  3. MySQL – ブログIDを追加する
  4. MySQL – 1つにまとめたデータを投稿日順に並び替える
  5. MySQL – 1つにまとめたデータに取得件数を指定する
  6. 完成版(ページングなし) - wordpressのマルチサイトで各サイトの記事を混ぜて一覧表示する

参考にさせていただきました


スポンサーリンク