سلام دوست عزیز، با یکی دیگه از مقاله های آکادمی آی تی در خدمت تو دست عزیز هستم در این مقاله میخوام درباره جستجوی پیشرفته وردپرس بدون افزونه با تو دوست عزیز صحبت کنم ، بهتره از پلاگین برای رفع نیازهای سایت وردپرس استفاده نکنیم ، مثلا استفاده از یکی از این افزونه ها فشار زیادی رو به سرور وارد میکنه به خاطر همین همیشه به دنبال کدهایی بودم که کار یک پلاگین رو برای رفع نیاز من انجام بده

یکی از مسائل مهم در یک سایت جستجوی آن است اما اکثرا سایت ها در جستجوی سایت زیاد وقت نمیزارن و معمولا از قدرت جستجو کمی برخوردارند.
اما ما امروز با چند خط کد php می توانیم این مسئله رو حل کنیم . این کار باعث می شود که کاربران ما بتوانند عمیق تر و با دقت بیشتری به پیدا کردن موضوعاتی که هستند باشند .کاری که ما امروز درست خواهیم کرد درست کردن یکجور ***** برای فرم جستجو است .


گام اول : اضافه کردن فرم جستجوی جدید به وردپرس

این کد را به Funactions.php قالب اضافه کنید. اگر همچین فایلی ندارید در پوشه قالب یکی با همین نام و پسوند php بسازید

function custom_search_form($custom_search){
$default=array(
‘cat_show’=>false,
‘tag_show’=>false,
‘author_show’=>false,
‘archive_show’=>false,
‘field_show’=>true,
‘label_show’=>false,
‘button_show’=>true,
‘rememberd’=>true,
echo’=>false
);//default array
foreach((array)$custom_search as $key=>$value){
$default[$key]=$value;
}

گام دوم : اضافه کردن متغیر ها

این کد را به Functions.php قالب اضافه کنید.



global $WP_Query,$query,$wp_user;
$cat_option=”;$tag_option=”;$author_option=” ;$archive_option=”;
$advance_option=”;$close_option=”;$field_optio n=”;$button_option=”;
$cat_selected=get_query_var(‘cat’);
$tag_selected=get_query_var(‘tag’);
$author_selected=get_query_var(‘author’);
$day_selected=get_query_var(‘day’);
$month_selected=get_query_var(‘monthnum’);
$year_selected=get_query_var(‘year’);
if($day_selected==0)$day_selected=”;
if($month_selected==0)$month_selected=”;
if($year_selected==0)$year_selected=”;


گام سوم : معرفی ***** ها به وردپرس


اضافه کردن کدهای زیر به functions


1.دسته بندی
if($default[‘cat_show’]==1):
$categories = get_categories();
$cat_option=‘<li><ul>’;
if($default[‘label_show’]):
$cat_option .=‘<li class=”cat-label”>’.__(‘دسته بندی’,‘zistfa’).‘</li>’;
endif;
$cat_option .=‘<li class=”search-cat”><select name=”cat” id=”searchcat” ><option value=””>’.__(‘همه’,‘zistfa’).‘ </option>’;
foreach ($categories as $category) {
$cat_option .= ‘<option value=”‘.$category->cat_ID.‘”‘;
if(($cat_selected == $category->cat_ID)&&($default[‘rememberd’]==1)):
$cat_option .=‘ selected’;
endif;
$cat_option .= ‘>’.$category->cat_name;
$cat_option .= ‘</option>’;
}
$cat_option .= ‘</select></li></ul></li>’;
endif;



2. برچسب
if($default[‘tag_show’]==1):
$tags = get_categories(‘taxonomy=post_tag’);
$tag_option=‘<li><ul>’;
if($default[‘label_show’]):
$tag_option .=‘<li class=”tag-label”>’.__(‘برچسب’,‘zistfa’).‘ </li>’;
endif;
$tag_option .=‘<li class=”search-tag” ><select name=”tag” id=”searchtag” ><option value=””>’.__(‘همه’,‘zistfa’).‘ </option>’;
foreach ($tags as $tag) {
$tag_option .= ‘<option value=”‘.$tag->slug.‘”‘;
if(($tag_selected == $tag->slug)&&($default[‘rememberd’]==1)):
$tag_option .=‘ selected’;
endif;
$tag_option .= ‘>’.$tag->cat_name;
$tag_option .= ‘</option>’;
}
$tag_option .= ‘</select></li></ul></li>’;
endif;


3. نویسنده
if($default[‘author_show’]==1):
$authors=get_users(array(‘who’=>‘authors’,‘fields’=>array(‘id’,‘display_name’)));
$author_option=‘<li><ul>’;
if($default[‘label_show’]):
$author_option .=‘<li class=”author-label”>’.__(‘نویسنده ‘,‘zistfa’).‘</li>’;
endif;
$author_option .=‘<li class=”search-author” ><select name=”tag” id=”searchauthor” ><option value=””>’.__(‘همه’,‘zistfa’).‘ </option>’;
foreach ($authors as $author) {
$author_option .= ‘<option value=”‘.$author->id.‘”‘;
if(($author_selected == $author->id)&&($default[‘rememberd’]==1)):
$author_option .=‘ selected’;
endif;
$author_option .= ‘>’.$author->display_name;
$author_option .= ‘</option>’;
}
$author_option .= ‘</select></li></ul></li>’;
endif;

ادامه مطلب در http://academyit.net/articles/97