2026年9月1日
2026年9月1日
WordPressのsearch.phpをカスタマイズする方法
はじめに
WordPressの検索結果ページはデフォルトでシンプルなデザインと機能を提供しますが、多くの場合、これではユーザーのニーズに十分対応できないことがあります。search.phpファイルをカスタマイズすることで、サイトのブランドイメージやユーザーエクスペリエンスを向上させることができます。
症状・背景
このテーマが必要になる主な場面:
- 検索結果ページのデザインがサイト全体のデザインと統一されていない場合
- 特定のカスタムフィールド情報やカテゴリ情報を検索結果に含めたい場合
- ページネーションをカスタマイズしたい場合
- 検索用の特定のフォーム要素を追加したい場合
手順・設定方法
ステップ1: search.phpファイルを編集する
# WordPressテーマディレクトリに移動します。
cd wp-content/themes/your-theme-name/
# search.phpファイルが存在しない場合は作成します。
touch search.php
ステップ2: テンプレートファイルの機能を拡張
# 検索結果ページのタイトルと説明文を追加します。
echo '<h1 class="search-title">検索結果</h1>' >> search.php
echo '<p class="search-description">あなたのキーワードに一致する記事が見つかりました。</p>' >> search.php
# ウィジェットエリアをカスタマイズします。
echo '<div id="custom-widget-area">' >> search.php
echo ' <?php if ( is_active_sidebar( 'sidebar-1' ) ) : ?>' >> search.php
echo ' <div class="widget-sidebar"> <?php dynamic_sidebar( 'sidebar-1' ); ?> </div>' >> search.php
echo ' <?php endif; ?>' >> search.php
echo '</div>' >> search.php
ステップ3: 特定の検索結果をカスタマイズ
# 検索結果ページで特定のカテゴリの記事のみを表示します。
echo '<ul class="search-results">' >> search.php
echo ' <?php $cat_id = 5; // カテゴリIDを指定 ?>' >> search.php
echo ' <?php query_posts( array(' >> search.php
echo ' "s" => get_search_query(),' >> search.php
echo ' "category__in" => array($cat_id)' >> search.php
echo ' ); ?>' >> search.php
echo ' <?php while ( have_posts() ) : the_post(); ?>' >> search.php
echo ' <li>' >> search.php
echo ' <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>' >> search.php
echo ' <p><?php the_excerpt(); ?></p>' >> search.php
echo ' </li>' >> search.php
echo ' <?php endwhile; ?>' >> search.php
echo '</ul>' >> search.php
# ページネーションを追加します。
echo '<div class="pagination">' >> search.php
echo ' <?php the_posts_pagination(); ?>' >> search.php
echo '</div>' >> search.php
ステップ4: 検索フォームのカスタマイズと表示
# カスタム検索フォームを追加します。
echo '<form method="get" id="custom-search-form" action="<?php echo home_url('/'); ?>">' >> search.php
echo ' <input type="text" value="" name="s" id="search-input" placeholder="キーワードを入力">' >> search.php
echo ' <input type="submit" class="btn btn-primary" value="検索" />' >> search.php
echo '</form>' >> search.php
注意事項
- <実践的な注意点1>: 検索結果ページの表示速度を保つために、必要以上の情報を含めないようにしましょう。
- <実践的な注意点2>: デフォルトのsearch.phpが存在しない場合、WordPressは404エラーではなく他のテンプレートファイルを使用するため、カスタマイズを慎重に行いましょう。
- <セキュリティ上の注意>: 検索結果ページでユーザー生成データを表示する際には、適切なエスケープ処理を行い、SQLインジェクションやクロスサイトスクリプティング(XSS)の脅威から保護します。
- <パフォーマンス/運用上の注意>: カスタムクエリを使用する場合は、効率的なデータベース操作を行うために適切なキャッシュ戦略を検討しましょう。
まとめ
1. カスタマイズの基本: search.phpファイルを編集し、必要なHTMLやPHPコードを追加します。
2. 検索結果ページのデザイン: カスタムCSSを使用して、検索結果ページに独自の視覚要素を追加します。
3. 特定のコンテンツ表示: 特定のカテゴリまたは投稿タイプのみを検索結果として表示することで、ユーザーエクスペリエンスを改善します。
4. ページネーションの追加: 検索結果が多岐にわたる場合、ページネーション機能を実装してユーザーが容易に情報を取得できるようにします。
5. 検索フォームのカスタマイズ: ユーザーインターフェースを向上させるために、独自の検索フォームを追加します。
関連記事: