多くの読者から、WordPressの検索URLの初期設定スラッグの変更について問い合わせがありました。標準のフォーマット(http://example.com/?s=search-term)はあまりユーザーフレンドリーではなく、SEO的にも最適化されていないため、よくあるリクエストです。
サイトオーナーは、ユーザーエクスペリエンスと検索エンジンの視認性を高めるために、http://example.com/search/search-term のようなすっきりとした構造を好むことが多い。
WordPressで検索URLのスラッグをカスタマイズする効果的な方法を2つ見つけました。このガイドでは、この2つの方法について説明し、あなたのサイトによりプロフェッショナルでSEOフレンドリーな検索URLを作成するお手伝いをします。さっそく始めましょう!
WordPressで初期設定の検索URLスラッグを変更する理由とは?
初期設定では、WordPressはサイト上のすべてのページにSEOフレンドリーなURL構造を使用します。通常、SEOに適したWordPressのURLは次のようになります:
http://example.com/some-post/
http://example.com/2018/03/news-article/
http://example.com/category/some-category/
ご覧のように、これらのURLは訪問者にとって非常にわかりやすいものです。ブラウザーのアドレスバーを見れば、あなたのサイトのレイアウトのどこにいるかがわかる。
これらのURLは、検索エンジンがページを正しくランク付けし、あなたのようなコンテンツを探している人々に表示できるように、ページに関する有益な情報も伝えます。
しかし、WordPressユーザーがあなたのサイトで検索を行う場合、URLは通常次のようになります:
http://example.com/?s=search-term
余計な?s=文字がこのURLを読みにくく、理解しにくくしており、検索エンジンと訪問者の両方を混乱させる可能性があります。このURLを変更することで、WordPressの検索を改善し、SEOを強化することができます。
それでは、検索URLを変更する方法を見てみましょう。以下のリンクから、使いたい方法にジャンプしてください:
方法1:WPCodeを使ってWordPressの検索URLスラッグを変更する(推奨)
WordPressの初期設定の検索スラッグを変更する最も簡単な方法は、WPCodeを使用することです。
WPCodeは、200万以上のWordPressサイトで使用されている最も人気のあるコードスニペットプラグインです。サイトのfunctions.phpファイルを編集することなく、WordPressにコードスニペットを追加することができます。
最初に行う必要があるのは、あなたのサイトに無料のWPCodeプラグインをインストールして有効化することです。詳しくは、WordPressプラグインのインストール方法のステップバイステップガイドをご覧ください。
有効化したら、Code Snippets ” Add Snippetに進みます。
Add Snippet’ページが表示され、WPCodeの既成スニペットライブラリを見ることができます。
独自のスニペットを追加するには、「カスタムコードの追加(新規スニペット)」にマウスオーバーするだけです。そして、’+ Add Custom Snippet’が外観されたら、クリックしてください。
次に、表示されるオプションからコードタイプを選択する必要がある。このチュートリアルでは、「PHP Snippet」をクリックします。
カスタム・スニペットの作成」ページでは、まずカスタム・コード・スニペットのタイトルを入力します。
WordPressの管理エリアでスニペットを識別するのに役立つものであれば何でも構いません。
次に、次のコードを「コード・プレビュー」ボックスに貼り付けます:
function wpb_change_search_url() {
if ( is_search() && ! empty( $_GET['s'] ) ) {
wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( 's' ) ) );
exit();
}
}
add_action( 'template_redirect', 'wpb_change_search_url' );
このコード・スニペットは、’/?s=search-term’文字を’search’に置き換えるので、スラッグは次のようになります: http://example.com/search/wordpress
URLに’search’以外のものを使用するには、上記のコードスニペットをカスタマイズするだけです。
コードに満足したら、「インサーター」ボックスまでスクロールして、スニペットを実行する場所を変更します。
まず、「自動挿入」が選択されていることを確認してください。次に、’Location’ ドロップダウンを開き、’Frontend Only’ を選択します。このコードは、サイトの公開フロントエンドでのみ使用します。
スニペットを好きなように設定したら、「Active」トグルをクリックしてライブにすることができる。
最後に、『スニペットを保存する』をクリックするのをお忘れなく。
では、あなたのサイトにアクセスして検索を実行してください。
ブラウザーのアドレスバーを見てみると、SEOに対応した新しい検索URLが表示されているはずだ。
方法2:.htaccessファイルでWordPressの検索URLスラッグを変更する
もう一つのオプションは、サイトの.htaccessファイルを編集することです。この方法はより複雑なので、初心者にはお勧めできません。しかし、コードスニペット・プラグインを使わずに検索URLスラッグを変更することができる。
.htaccessファイルにアクセスするには、FileZillaなどの FTPクライアントが必要ですが、WordPressホスティングのcPanelのファイルマネージャーを使用することもできます。
初めてFTPを使用する場合は、FTPを使用してサイトに接続する方法についての完全なガイドを参照してください。
例として、Bluehostのファイルマネージャーアプリを使用します。Bluehostユーザーの場合は、先に進み、ホスティングダッシュボードにログインします。そして、「ウェブサイト」タブに移動し、編集したいサイトの「設定」をクリックします。
その後、クイックリンクのセクションに行く。
そこで「ファイルマネージャー」をクリックします。同じエリアのあたりに、あなたのドキュメントのルートパス(通常はpublic_html)も表示され、そこに.htaccessファイルがあります。
これでBluehostのファイルマネージャーに入るはずです。
public_htmlフォルダーにある.htaccessファイルを見つけたら、その上で右クリックし、「編集」を選択する。
次に、以下のコードをファイルの一番下に貼り付ける:
# Change WordPress search URL
RewriteCond %{QUERY_STRING} \\?s=([^&]+) [NC]
RewriteRule ^$ /search/%1/? [NC,R,L]
これでWordPressの検索スラッグが以下のように変更されます:
http://example.com/search/your-search-query/
このスラッグは、コード・スニペットをカスタマイズすることで変更できる。
そうしたら、『変更を保存』をクリックするのをお忘れなく。
これで、あなたのサイトで検索を実行すると、新しいスラッグが使われていることに気づくだろう。
ボーナスのヒントSearchWPを使ってカスタマイザーWordPress検索エンジンを作る
ビルトインのWordPress検索ブロックは、サイトの検索エンジンとして問題なく機能します。しかし、より良い検索体験を提供したいのであれば、SearchWPが必要です。
このWordPress検索プラグインでは、ユーザーやサイトのニーズに最適なカスタマイザー検索アルゴリズムやフォームを作成することができます。例えば、カテゴリー別の検索機能を追加することで、読者が特定のカテゴリーのコンテンツに目を通すことだけに集中することができます。
この検索プラグインについてさらに詳しく知りたい方は、SearchWPのレビューをお読みください。
この投稿がWordPressの初期設定の検索URLスラッグを変更するのにお役に立てば幸いです。WordPressの検索結果ページをカスタマイズする方法についての投稿や、WooCommerceの商品検索をスマートにする方法についての初心者向けガイドもご覧ください。
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Brandon Boyd
Hi, I just came across this today and it’s been super helpful. Is there anyway to remove the “You Search For” prefix in the page title when doing a search?
WPBeginner Support
That would be added by your specific theme first. We would recommend checking with the support for your theme to see if they have a built-in or recommended way for changing that without needing to modify your theme’s files.
管理者
Kedar Bhogle
Thank you Respected Sir/Madam,
I am looking for such code because I want to use theme default theme’s search box using “Google Custom Search Engine” for extra revenue. Finally I have done using this code (all credit goes to you Sir / Madam). I have basis knowledge about html ( I don’t learn @ any institution, I learned online….. Let’s go),
Very Very Thanks again…..
WPBeginner Support
Glad our guide could help
管理者
mostafa elaissaoui
thank you
this is helpful
WPBeginner Support
You’re welcome
管理者
Josh
Is there a way to change /search/ to /somethingelse/
WPBeginner Support
You would use the first method and replace the word search with the word you wanted
管理者
Josh
Works great. Any idea why this might leave off closing / as in url.com/search/search-term instead of /search-term/
WPBeginner Support
For the first method, depending on your permalinks it may not automatically add a trailing slash, if you wanted one you would need to add the trailing slash to the wp_redirect function or modify your permalink settings.
管理者
Carlos
Method 1 doesn’t work if I change “/search/” for another term. I triead “/busca/” that means search in portuguese…
Richard Talbot
Carlos is right. Same goes for method 2 (htacess method. The only word it will work for is “search”. If you try any other word like “result”, “busca”, “whatever”, etc, then you get a 404.
Very confusing as to why it only works for the word “search”.
WPBeginner Support
You may want to ensure you cleared your caching if you’ve edited the code from the article for a word other than search for one possible reason.
管理者
Allewar
These methods alone won’t work, they only make the «pretty» slug, but the keyword you need to change is the WP rewrite rule for the query.
You can use this code in your theme’s functions.hp to use any word you want (also includes the rule for the ‘page’ slug):
function re_rewrite_rules() {
global $wp_rewrite;
$wp_rewrite->search_base = ‘buscar’;
$wp_rewrite->pagination_base = ‘pagina’;
$wp_rewrite->flush_rules();
}
add_action(‘init’, ‘re_rewrite_rules’);
Cristina
I’ve used the .htaccess metod and it works. Ths a lot!
Joseph
Do you meant that the search result page can be indexed by search engine?
However, the content in the search result page is a kind of duplicate content as what we can find in the archieve, category or tag pages.
PS. I am not an expert in SEO and might have wrong concept.
Linas
Thank You! Works great. Used 1st method with functions.php