WordPressでは、URLに含まれるパラメータを利用して表示内容を切り替えることが可能です。たとえば、検索条件として扱ったり、特定のページへリダイレクトしたり、非表示エリアを制御するなど、さまざまな場面で応用できます。
この記事では、URLパラメータを取得して処理を分岐する基本的な方法と、その応用例を紹介します。
URLパラメータの基本的な取得方法
WordPressのテンプレートファイル内で、$_GET を使って簡単にURLパラメータを取得できます。
例)example.com/page/?view=simple の場合
<?php
$view = isset($_GET['view']) ? sanitize_text_field($_GET['view']) : '';
if ($view === 'simple') {
echo 'シンプルビューを表示';
} else {
echo '通常ビューを表示';
}
?>
✅ sanitize_text_field() を使ってセキュリティ面にも配慮しましょう。
応用1 表示を切り替える(条件分岐)
以下のように、URLパラメータに応じて出力内容やクラス名を切り替えることができます。
<?php
$layout = isset($_GET['layout']) ? $_GET['layout'] : 'grid';
?>
<div class="post-list layout-<?php echo esc_attr($layout); ?>">
<!-- 記事一覧 -->
</div>
このようにすれば、CSSで .layout-grid や .layout-list のスタイルを切り替えることも可能です。
応用2 URLパラメータを使って検索条件を制御
検索フォームからカテゴリやカスタムフィールドを送信し、パラメータで取得して条件に反映することができます。
例)?category=news&keyword=AI
$category = isset($_GET['category']) ? sanitize_text_field($_GET['category']) : '';
$keyword = isset($_GET['keyword']) ? sanitize_text_field($_GET['keyword']) : '';
$args = array(
'post_type' => 'post',
's' => $keyword,
);
if (!empty($category)) {
$args['category_name'] = $category;
}
$query = new WP_Query($args);
応用3 URLパラメータに応じてリダイレクト
管理画面やカスタムページでの振り分けにも便利です。
例)ログイン後に ?redirect=mypage がある場合にマイページに飛ばす
add_action('wp_login', 'custom_login_redirect', 10, 2);
function custom_login_redirect($user_login, $user) {
if (isset($_GET['redirect']) && $_GET['redirect'] === 'mypage') {
wp_safe_redirect(home_url('/mypage/'));
exit;
}
}
注意点
- パラメータの値は信頼できないため、常にサニタイズ処理を行うことが重要です。
- 必要に応じて intval() や esc_url() など適切な関数を使い分けてください。
まとめ
WordPressでは、URLパラメータを使うことで柔軟な表示制御やリダイレクト処理が可能になります。フォームの絞り込み検索やデザイン切り替え、動的リンク処理などにも活用できるため、ユーザー体験を向上させる仕組みとして非常に有効です。