您可以为此特定搜索页面创建自定义页面模板http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates.
然后设置一些$\\u GET变量(使用带有GET方法的表单)。
并对这些$\\u GET值执行自定义查询:
$date_query = new WP_Query( \'year=\' . $_GET[\'year\'] . \'&monthnum=\' . $_GET[\'month\'] . \'&day=\' . $_GET[\'day\'] );
然后自定义循环:
<?php if ($date_query->have_posts()) : while ($date_query->have_posts()) : $date_query->the_post();?>
<?php the_title(); ?>
<?php endwhile; endif; ?>
更新:
很抱歉花了这么长时间,有点忙。
以下是您的问题的解决方案:
把这个放在你的函数中。php
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\');
如果你在类似“2011年6月14日”的页面上搜索,它将显示2011年6月14日的搜索页面。如果您在“2011年6月14日searchthis”上搜索,它将显示2011年6月14日的搜索页面,其中包含搜索短语“searchthis”。
也许有一个更简单/更好的解决方案适合您,但这会奏效。