آموزش تغییر آدرس پیش فرض جستجو در وردپرس
وردپرس به صورت پیشفرض در بخش های مختلف خود از آدرس های واضح و کاربر پسندانه ای بهره میگیرد که درک آنها هم برای کاربران و هم برای موتورهای جستجو آسان بوده و علاوه بر امکان بهره گیری آسان، دارای ساختار زیبایی نیز هستند. در این میان آدرسی که وردپرس در بخش جستجو به کار میگیرد، به علت وجود کوئری (و طبعا علامت سوال) در url دارای ساختار جالب توجه و کاربر پسندانه ای نیست. به همین جهت قصد داریم در آموزش امروز به مبحث تغییر آدرس پیش فرض جستجو در وردپرس پرداخته و روش های سفارشی سازی نامک جستجو در وردپرس را بررسی کنیم. از شما دعوت میکنیم که در ادامه با مسترکد همراه شوید.
تغییر آدرس پیش فرض جستجو در وردپرس
آدرس پیش فرض جستجو در وردپرس دارای ساختار زیر است :
mydomain.com/?s=search-term
در آدرس بالا آنچه پس از علامت مساوی درج شده، عبارتی است که کاربر به دنبال آن جستجو کرده است. در ادامه دو روش مختلف را برای شما شرح خواهیم داد که با استفاده از آنها میتوانید ساختار آدرس جستجوی وردپرس را از حالت دارای کوئری که در بالا به آن اشاره شد، به ساختار زیر تغییر دهید :
mydomain.com/search/search-term
البته لازم به ذکر است که ساختار فوق بدون اعمال هیچ نوع تغییری در وردپرس فعال و قابل استفاده است. اما کاری که ما میخواهیم انجام بدهیم این است که ساختار فوق را تبدیل به ساختار اصلی آدرس جستجو کنیم تا کلیه ی آدرس های دارای کوئری که از حالت اول استفاده میکنند، به حالت دوم که شکل زیباتری دارد، بازنویسی شوند.
روش اول : از طریق فایل functions.php
در روش اول لازم است که کد زیر را به فایل functions.php قالب خود یا افزونه ای که برای سایتتان ساخته اید (شرح در اینجا) اضافه کنید :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | function mrcode_change_search_url_rewrite() { if ( is_search() && ! empty( $_GET['s'] ) ) { wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( 's' ) ) ); exit(); } } add_action( 'template_redirect', 'mrcode_change_search_url_rewrite' ); function rewrite_search_slug() { add_rewrite_rule( 'search(/([^/]+))?(/([^/]+))?(/([^/]+))?/?', 'index.php?s=$matches[2]&paged=$matches[6]', 'top' ); } add_action( 'init', 'rewrite_search_slug' ); |
در کد بالا در خط سوم و دهم میتوانید عبارت search را با عبارت دلخواه خود جایگزین کنید. مثلا میتوانید به دلخواه از کلماتی مانند find یا results بجای search بهره بگیرید.
روش دوم : از طریق فایل htaccess
در این روش آدرس پیش فرض جستجو در وردپرس را از طریق ویرایش فایل htaccess تغییر خواهیم داد. این فایل را میتوانید در فولدر اصلی محل راه اندازی سایت خود بیابید. (مثلا public_html یا httpdocs) توجه داشته باشید به این علت که نام این فایل با نقطه شروع میشود، ممکن است برای نمایش آن نیاز به فعال کردن نمایش فایل های مخفی در فایل منیجر هاست خود داشته باشید. برای تغییر ساختار آدرس جستجو در ورپرس کافی است کد زیر را به انتهای این فایل اضافه کرده و سپس تغییرات را در فایل ذخیره کنید.
1 2 3 | # ReWrite WP Search URL RewriteCond %{QUERY_STRING} \\?s=([^&]+) [NC] RewriteRule ^$ /search/%1/? [NC,R,L] |
نکته : استفاده از این شیوه برای سایت های فارسی زبان مناسب نخواهد بود. چرا که کوئری جستجو پس از ریرایت در آدرس به حالت RFC 3986 در می آید. و نکته ی دیگر اینکه اگر از این شیوه در زیر فولدر های دامنه ی اصلی سایتتان استفاده میکنید (خصوصا در محیط لوکال) در خط سوم کد یک فوروارد اسلش به همراه آدرس فولدر به پشت عبارت /search/ اضافه کنید. مثلا /myfolder/search/
در پایان امیدواریم از آموزش کوتاه امروز لذت برده باشید.