رفتن به مطلب

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


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

درود.

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

دوستان کدی رو قرار دادند که موضوعات رو میاره ، چیزی که مد نظر من هست ، علاوه بر موضوعات ، تاریخ هم هست ! فروردین 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

  • امتیاز 4
لینک به ارسال

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

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

  • امتیاز 1
لینک به ارسال

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

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

لینک به ارسال

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

$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

  • امتیاز 1
لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید



ورود به حساب کاربری
×
×
  • اضافه کردن...