速報

プレステージで最大約550万件の情報持ち出し|ロードサービスは代替運用で継続

CATEGORY

【WordPress】【pre_get_posts】$_GETパラメータを取得してキーワード検索を実行する

※本ページのリンクにはプロモーションが含まれています。

【WordPress】【pre_get_posts】$_GETパラメータを取得してキーワード検索を実行する

目次

本記事では、WordPressのpre_get_postsを使って、$_GETパラメータ(クエリ文字列)を取得してキーワード検索を実行する方法をご紹介しています。

WordPressのpre_get_postsで$_GETパラメータを取得してキーワード検索を実行するにはどうすればいいんだろう?

上記の疑問にお答えします。

では、解説していきます。

スポンサーリンク

pre_get_postsで$_GETパラメータを取得する

pre_get_postsはクエリ情報を書き換える際に使用するフックです。pre_get_postsを使用することで、メインループで取得することができるクエリ情報を任意のパラメータで絞り込むことができます。

ここではpre_get_postsを使って、対象ページのURLから$_GETパラメータ(クエリ文字列)の値を取得し、キーワード検索を実行してみます。対象は投稿アーカイブとし、pre_get_posts内で$_GETパラメータのダンプを出力してみます。

PHP(functions.php)

function custom_pre_get_posts($query){
    if(is_admin() || !$query->is_main_query()){
        return ;
    }

    if(is_archive()){
        if($_GET){
            var_dump($_GET);
        }
    }
}
add_action('pre_get_posts', 'custom_pre_get_posts');

上記をテーマ内のfunctions.phpに追加して投稿アーカイブページのURLに$_GETパラメータを追加してアクセスします。

例:http://localhost/archive/?keyword=テスト

実行すると$_GETパラメータのダンプ結果がページの一番上に出力されます。

pre_get_postsで$_GETパラメータの値でキーワード検索する

前項のコードに少しスクリプトを追加して$_GETパラメータの値でキーワード検索を実行します。

WordPressでキーワードで投稿を絞り込む場合は、sというキーに任意の値を指定することで実現できます。p

PHP(functions.php)

function custom_pre_get_posts($query){
    if(is_admin() || !$query->is_main_query()){
        return ;
    }

    if(is_archive()){
        if($_GET['keyword']){
            $query->set('s', $_GET['keyword']);
        }
    }
}
add_action('pre_get_posts', 'custom_pre_get_posts');

上記をfunctions.phpに追加して投稿アーカイブページにkeywordという$_GETパラメータを追加してアクセスします。

例:http://localhost/archive/?keyword=テスト

ページにアクセスすると、keywordの値に指定したテストというテキストを持つ投稿情報が出力されます。

スポンサーリンク

最後に

pre_get_postsはクエリ情報を操作するWordPressの基本的なフックです。クエリの取り扱い方さえわかればWordPressではほとんどのことが実現できるようになります。ぜひ使い方をマスターして思い通りにクエリを操作できるようになりましょう!

以上、WordPressのpre_get_postsで$_GETを取得してキーワード検索を実行する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク