WordPressにはデフォルトでサイト内検索機能が備わっています。
任意のキーワードを入力すると固定ページ・投稿ページなどのコンテンツがヒットします。
この記事では、サイト内検索を行った際に、バックエンドでどのような処理が行われているのかを解説します。
SQLの処理を確認するために、Query Monitorという開発用のプラグインを使用して進めて行きます。
Query Monitor
サイト内検索実行
クエリー
実際にサイト内検索が行われると下記のような処理が走ります。
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts
WHERE 1=1
AND (((wp_posts.post_title LIKE '%検索キーワード%')
OR (wp_posts.post_excerpt LIKE '%検索キーワード%')
OR (wp_posts.post_content LIKE '%検索キーワード%')))
AND wp_posts.post_type IN ('post', 'page')
AND (wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'acf-disabled'
OR wp_posts.post_author = 1
AND wp_posts.post_status = 'private')
ORDER BY wp_posts.post_title LIKE '%検索キーワード%' DESC, wp_posts.post_date DESC
LIMIT 0, 10
検索条件に該当する項目
キーワードをデータベースから検索する際の検索条件を指定しているのが下記になります。
AND (((wp_posts.post_title LIKE '%検索キーワード%')
OR (wp_posts.post_excerpt LIKE '%検索キーワード%')
OR (wp_posts.post_content LIKE '%検索キーワード%')))
AND wp_posts.post_type IN ('post', 'page')
AND (wp_posts.post_status = 'publish'
OR wp_posts.post_author = 1
AND wp_posts.post_status = 'private')
重要な項目を細分化
AND wp_posts.post_title LIKE '%検索キーワード%'
投稿記事のタイトル
OR wp_posts.post_excerpt LIKE '%検索キーワード%'
投稿記事の抜粋文
OR wp_posts.post_content LIKE '%検索キーワード%'
投稿記事の本文
AND wp_posts.post_type IN ('post', 'page')
投稿ページと固定ページで作成されたコンテンツ
コメント