【WordPress】検索クエリのURLにオリジナルのパラメーター を追加する

WordPressの検索機能を利用すると、検索結果ページのURLの末尾に?s=が追加されます。この検索用のパラメーターにオリジナルパラメーターを追加したい時は以下のコードを追加します。今回は仮にパラメーター変数名をparam1とします。

function add_query_vars_filter( $vars ){
	$vars[] = "s";
	$vars[] = "param1"; // オリジナルクエリを追加
	return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );

検索フォームタグに以下のコードを追加します。値は仮にVALUEとします。

<input type="hidden" name="param1" value="VALUE">

フォームタグの全体は以下のような形になると思います。

<form class="searchform" role="search" method="get" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>">
	<label class="searchform__label" for="s"><?php _x( 'Search for:', 'label' ); ?></label>
	<input class="searchform__input" type="text" value="<?php echo get_search_query(); ?>" name="s" id="s" placeholder="検索する" />
	<input type="hidden" name="param1" value="VALUE">
	<button class="searchform__submit" type="submit" id="searchsubmit" value="">検索</button>
</form>

検索フォームで、検索ボタンを押下すると以下のようなURLになります。

/?s=keyword&param1=VALUE

当然のことながら、パラメーターを追加するだけでは何も起こりませんので、以下のコードからパラメーターの値を取得してなんらかの処理を追加することで機能を追加することが可能になります。

$param = isset( $_GET['param1'] ) ? $_GET['param1'] : false;