所以我通过邮政类型过滤器进行了下面的吐痰,但我怎么能使用类别或自定义字段呢?
$categories = array(
'post' => 'Articles',
'mobile-experience' => 'Mobile',
'staff-profiles' => 'Staff Profiles',
'events' => 'Events',
'page' => 'Page Content',);
我只想更改wordpress搜索结果页面以填充其类别。
EG 。搜索关键字Cars。
第1类
汽车(此类汽车项目)
第2类
汽车(此类汽车项目)
第3类
未找到任何内容(此类别中未找到汽车项目)
等
按关键字汽车搜索。
会抓住任何关键字汽车并填充在该类别下(使用关键字汽车在2个类别下找到的项目,而不是3;找到的所有地方都会填充)
基本上不是用关键字汽车拍摄所有物品;它会显示搜索结果类别的搜索结果。
我只有3个类别。
最近的尝试(尝试2个类别)
<?php
get_header(); ?>
<div class="content">
<?php
$s = get_search_query();
?>
<div class="search">
<div class="categoryThumbs">
<?php if (have_posts()) : ?>
<h3><?php printf( __( 'Search Results for: %s'), '<span>' . get_search_query() . '</span>' ); ?></h3>
<?php endif;?>
<?php query_posts("s='$s'&category_name=build"); ?>
<?php if (have_posts()) : ?>
<?php $blogResults=0; ?>
<?php while (have_posts()) : the_post(); ?>
<?php
$blogResults++;
?>
<?php endwhile; ?>
<h4><?php echo $blogResults; ?> Results in BLOG</h4>
<?php while (have_posts()) : the_post(); ?>
<div class="films">
<div class="thumb">
<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(); ?></a>
</div>
<h3 id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
<div class="entry">
<?php the_excerpt() ?>
</div>
</div>
<?php endwhile; ?>
<?php endif;?>
<?php query_posts("s='$s'&category_name=apps"); ?>
<?php if (have_posts()) : ?>
<?php $blogResults=0; ?>
<?php while (have_posts()) : the_post(); ?>
<?php
$blogResults++;
?>
<?php endwhile; ?>
<h4><?php echo $blogResults; ?> Results in Films</h4>
<?php while (have_posts()) : the_post(); ?>
<div class="films">
<div class="thumb">
<a href="<?php the_permalink() ?>"><?php the_post_thumbnail(); ?></a>
</div>
<h3 id="post-<?php the_ID(); ?>"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h3>
<div class="entry">
<?php the_excerpt() ?>
</div>
</div>
<?php endwhile; ?>
<?php endif;?>
<div class="spacer"></div>
</div>
</div>
</div>
<?php get_footer(); ?>
答案 0 :(得分:0)
如果你有另一个数组,让我们说$ categories2,你可以这样做:
$ result = array_merge($ categories,$ categories2);
答案 1 :(得分:0)
只需使用jquery,
将隐藏的字段添加到搜索表单中每个类别都有自己独特的正文类,您可以使用该类只为不同类别添加不同的隐藏字段,
您可以使用Jquery prepend或append,
(function($){
//First Category
$('.your-category-body-class .your-search-form-class').prepend('<input type="hidden" id="foo" name="category_name" value="your-category-slug" />');
//Second Category
$('.your-second-cat-body-class .your-search-form-class').prepend('<input type="hidden" id="foo" name="category_name" value="your-second-cat-slug" />')
})(jQuery)
默认的wordpress表单看起来像这样
<form method="get" class="search-form" action="http://your-site.com/" role="search">
<input type="search" name="s" placeholder="Search Movie...">
<input type="submit" value="Search">
</form>
你也可以像这样http://your-site.com/?post_type=your-custom-post&category_name=your-category-slug&post_tag=your-tag
当您进行搜索时,它会返回此http://your-site.com/?s=Your+Search+Phrase
,您的目标是在搜索结果中添加预定义的附加参数,以返回http://your-site.com/?s=Your+Search+Phrase&category_name=category-slug
所以你需要你的搜索表格是这样的
<form method="get" class="search-form" action="http://your-site.com/" role="search">
<input type="search" name="s" placeholder="Search Movie...">
<input type="hidden" id="foo" name="category_name" value="your-category-slug" />
<input type="submit" value="Search">
</form>
你可以通过我上面提供的jquery实现这一点,你只需要获得正确的选择器
或者只是创建自己的搜索表单
function my_custom_search_form() {
echo '<form method="get" class="search-form" action="http://your-site.com/" role="search">'."\n";
echo '<input type="search" name="s" placeholder="Search Movie...">'."\n";
if( is_category('your-category-slug-or-id') ) {
echo '<input type="hidden" id="foo" name="category_name" value="your-category-slug" />'."\n";
} elseif(is_category('your-second-slug-or-id')) {
echo '<input type="hidden" id="foo" name="category_name" value="your-second-slug-or-id" />'."\n";
}
echo '<input type="submit" value="Search">'."\n";
echo '</form>';
}
然后只需使用my_custom_search_form()
而不是wordpress默认搜索表单
修改强>
您可以通过在表单上添加隐藏的输入字段来自定义搜索查询参数,
如果你想搜索整个数据库,那就是默认的wordpress搜索框,
像这样http://your-site.com/?s=Your+Search+Phrase
如果您想在特定类别中进行搜索,则需要使用搜索表单返回此类网址http://your-site.com/?s=Your+Search+Phrase&category_name=your-category-slug
如果您想在两个类别中进行搜索,那么您需要使用搜索表单返回此http://your-site.com/?s=Your+Search+Phrase&cat=1,2
的网址,其中 1 且 2 是您的类别ID,或组合类别slug http://your-site.com/?s=Your+Search+Phrase&category_name=your-first-category-slug,second-category-slug
您只需在搜索表单上添加隐藏值,即可添加符合您需求的参数