رفتن به مطلب

ابزارک جستجوی پیشرفته !


پست های پیشنهاد شده

درود.

دوستان دنبال ابزارکی هستم که جستجو رو پیشرفته کنه !

دوستان کدی رو قرار دادند که موضوعات رو میاره ، چیزی که مد نظر من هست ، علاوه بر موضوعات ، تاریخ هم هست ! فروردین 90 ، اردیبهشت 90....

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


<?php
/*
Template Name: Search Pro
*/
?>
<?php the_post(); ?>
<?php get_header(); ?>

<div id="content-area" class="clearfix<?php if($fullwidth) echo(' fullwidth');?>">

<div class="post clearfix">

<?php if($thumb <> '' && get_option('iutab-shahrak_thumbnails') == 'on') { ?>

<?php }; ?>
<?php the_content(); ?>
<?php wp_link_pages(array('before' => '<p><strong>برگه ها:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>

<div id="et-search">
<div id="et-search-inner" class="clearfix">
<p id="et-search-title"><span>جست و جوی پیشرفته</span></p>
<form action="<?php bloginfo('url'); ?>" method="get" id="et_search_form">
<div id="et-search-left">
<p id="et-search-word"><input type="text" id="et-searchinput" name="s" value="" /></p>

<p id="et_choose_posts"><label><input type="checkbox" id="et-inc-posts" name="et-inc-posts"> در نوشته ها</label></p>
<p id="et_choose_pages"><label><input type="checkbox" id="et-inc-pages" name="et-inc-pages"> در برگه ها</label></p>
<p id="et_choose_date">
<select id="et-month-choice" name="et-month-choice">
<option value="no-choice">انتخاب ماه</option>
<?php
global $wpdb, $wp_locale;

$selected = '';
$query = "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM $wpdb->posts GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC";

$arcresults = $wpdb->get_results($query);

foreach ( (array) $arcresults as $arcresult ) {
if ( isset($_POST['et-month-choice']) && ( $_POST['et-month-choice'] == ($arcresult->year . $arcresult->month) ) ) {
$selected = ' selected="selected"';
}
echo "<option value='{$arcresult->year}{$arcresult->month}'{$selected}>{$wp_locale->get_month($arcresult->month)}" . ", {$arcresult->year}</option>";
if ( $selected <> '' ) $selected = '';
}
?>
</select>
</p>

<p id="et_choose_cat"><?php wp_dropdown_categories('show_option_all=انتخاب دسته&show_count=1&hierarchical=1&id=et-cat&name=et-cat'); ?></p>
</div> <!-- #et-search-left -->

<div id="et-search-right">
<input type="hidden" name="et_searchform_submit" value="et_search_proccess" />
<input class="et_search_submit" type="submit" value="بگرد" id="et_search_submit" />
</div> <!-- #et-search-right -->
</form>
</div> <!-- end #et-search-inner -->
</div> <!-- end #et-search -->

<div class="clear"></div>

<?php edit_post_link(__('Edit this page','iutab-shahrak')); ?>
<div class="clear"></div>
</div> <!-- end .post -->

</div> <!-- end #content-area -->

<?php if (!$fullwidth) get_sidebar(); ?>
<?php get_footer(); ?>

اما : کلا مشکل داره و نمایش های پست هاش عمومیه فکر کنم ! :دی

تاریخش هم میلادیه ...

لینک به ارسال

شاید این افزونه هم بدردتون بخوره(تست نکردم فقط از مشهوریتش خوشم اومده!)

Relevanssi - A Better Search

لینک به ارسال

شبیه همین کد شماست.

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

لینک به ارسال

این کد کلا قدیمی هست و فکر کنم از کار هم افتاده، چون تست که کردم ، مطالب رو کامل نشون میده تقریبا !

کد دیگه ای نیست؟

لینک به ارسال

یک فرم ایجاد کنید و تاریخ رو توی اون قرار بدید و با کمک کوئری مثل لاین پست ها رو نمایش بدید:

$date_query = new WP_Query( 'year=' . $_GET['year'] . '&monthnum=' . $_GET['month'] . '&day=' . $_GET['day'] );

روز و ماه و سال.

یک متد بهتر، کد زیر در فایل فانکشن:

function my_date_search() {

if(is_search()) {

$search_query = get_search_query();

$months = array( 1 => "January", 2 => "February", 3 => "March", 4 => "April", 5 => "May", 6 => "June", 7 => "July", 8 => "August", 9 => "September", 10 => "October", 11 => "November", 12 => "December" );

foreach($months as $month => $month_name) {

if(stristr($search_query, $month_name)) {

$m = $month;

preg_match('/(19[0-9][0-9]|20[0-9][0-9])/', $search_query, $year);

if($year)

$y = $year[0];

preg_match('/^[0-3]{0,1}[0-9]{1} /', $search_query, $day);

if($day)

$d = $day[0];

}

}

if(isset($d) && isset($m) && isset($y)) {

$wd = explode($y, $search_query);

if($wd[1])

$query_string = 's=' . trim($wd[1]) . '&year=' . $y . '&monthnum=' . $m . '&day=' . $d;

else

$query_string = 'year=' . $y . '&monthnum=' . $m . '&day=' . $d;

query_posts($query_string);

}

}

}

add_action('get_header', 'my_date_search');

ورودی هم به صورت: 15 april 2012

و در نهایت افزونه غیر رایگان:

http://codecanyon.net/item/wordpress-plugin-post-by-date-range/2350915

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...