حتما با بخش جستجوی وردپرس آشنایی دارید؟ همان بخشی که به شما کاربران شما امکان می دهد درون مطالب وب سایت شما بدون نیاز به رجوع به موتور های جستجو همچون گوگل جستجو کنند. این بخش به ظاهر ساده هک های بسیار متنوعی دارد که قصد داریم در این مطلب به بخشی از آن ها بپردازیم.
نخستین هک، انتقال خودکار به تنها مطلب یافت شده!
گاهی اوقات پیش می آید که جستجوی کاربر تنها یک نتیجه در بر خواهد داشت. شاید شما تمایل داشته باشید که کاربر به صورت خودکار به نتیجه یافت شده منتقل شود. این امر از زحمت کاربر می کاهد و در برخی موارد مورد رضایت کاربران می شود. شما می بایست کد هایی که در ادامه آمده اند را در فایل functions.php قالب خود کپی کنید.
add_action('template_redirect', 'redirect_single_post'); function redirect_single_post() { if (is_search()) { global $wp_query; if ($wp_query->post_count == 1) { wp_redirect( get_permalink( $wp_query->posts['0']->ID ) ); } } }
هک بعدی، نمایش تعداد نتایج یافت شده
برای نمایش تعداد نتایج یافت شده برای جستجوی کاربر از کد زیر درون فایل search.php قالب خود بهره جویید.
<h2 class="pagetitle">Search Results for <?php /* Search Count */ $allsearch = &new WP_Query("s=$s&showposts=-1"); $key = wp_specialchars($s, 1); $count = $allsearch->post_count; _e(''); _e('<span class="search-terms">'); echo $key; _e('</span>'); _e(' — '); echo $count . ' '; _e('articles'); wp_reset_query(); ?></h2>
برجسته کردن متن جستجو شده در نتایج
برای برجسته کردن متن جستجو شده توسط کاربر و به اصطلاح هایلایت کردن آن درون فایل search.php قالب خود دستور :
the_title()
را بیابید و آن را با مقدار
echo $title;
جایگزین کنید. سپس درست پیش از همین خطی که ویرایش کرده اید کد زیر را قرار دهید:
<?php $title = get_the_title(); $keys= explode(" ",$s); $title = preg_replace('/('.implode('|', $keys) .')/iu', '<strong class="search-excerpt">\0</strong>', $title); ?>
سپس وارد فایل style.css قالب خود شوید و کد زیر را در انتهای آن اضافه کنید.
strong.search-excerpt { background: yellow; }
و آخرین هک، محدود کردن تعداد نتایج جستجو در هر صفحه
وردپرس به صورت پیشفرض در هر صفحه 10 مورد از نتایج جستجوی کاربر را نشان می دهد. برای تغییر آن به مقدار دلخواه خود کد زیر را در فایل functions.php قالب خود قرار دهید:
function limit_posts_per_search_page() { if ( is_search() ) set_query_var('posts_per_archive_page', 20); } add_filter('pre_get_posts', 'limit_posts_per_search_page');
برای تغییر تعداد نتایج عدد 20 را در خط سوم ویرایش کنید.
بزودی ادامه این هک ها را قرار خواهیم داد،
اگر این قالب را دوست دارید امتیاز دهید : |
با سلام
ضمن تشکر از کدهای مفید و کاربردی ارائه شده.
من از فالب صحفیه استفاده می کنم، در فایل search کد the_title() نیست تا تغییرات اعلام شده را انجام دهم. چه پیشنهادی دارید.
با سپاس
با سلام و خسته نباشید
چگونه می تونم جستجوی ورد پرس را فقط برای یک برگه محدود کنم یعنی 120 اسم در یک برگه وجود دارد
که می خواهیم برای اینکه 120 نفر را یک به یک جست و جو نکنیم یک جستجو فقط مختص این برگه برای حرف های این برگه داشته با شیم ممنون میشم راهنمایی ام کنید من واقعا در گیر این موضوع هستم و هر جا میروم یک طور دیگر بهمن جواب می دهند
با تشکر
خیلی ممنون از سایت خوب شما؛
بنده فایل search.php را خودم نوشته ام.
و هنوز با توجه به ایراداتی که دارد، هنگام جستجو the_title() را پیدا نکردم.
می شود راهنمایی کنید چه کدی برای بارگزاری نتایج جستجو باید بنویسیم ؟
تشکر از سایت عالی شما