Php WordPress更改搜索结果
我有一个问题,我的WordPress主题(“Sydney”)显示的搜索结果是错误的。我只想展示WooCommerce产品,而不是仅仅列出帖子 这些产品应以漂亮的网格进行订购,如图所示: 目前,结果如下所示 如何更改搜索结果的显示方式 目前,我的Php WordPress更改搜索结果,php,wordpress,search,woocommerce,Php,Wordpress,Search,Woocommerce,我有一个问题,我的WordPress主题(“Sydney”)显示的搜索结果是错误的。我只想展示WooCommerce产品,而不是仅仅列出帖子 这些产品应以漂亮的网格进行订购,如图所示: 目前,结果如下所示 如何更改搜索结果的显示方式 目前,我的search.php如下所示: <?php get_header(); ?> <div id="primary" class="content-area col-md-9"> <main id="main" cl
search.php
如下所示:
<?php get_header(); ?>
<div id="primary" class="content-area col-md-9">
<main id="main" class="post-wrap" role="main">
<?php if ( have_posts() ) : ?>
<header class="page-header">
<h3><?php printf( __( 'Search Results for: %s', 'sydney' ), '<span>' . get_search_query() . '</span>' ); ?></h31>
</h3>
</header><!-- .page-header -->
<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php
/**
* Run the loop for the search to output the results.
* If you want to overload this in a child theme then include a file
* called content-search.php and that will be used instead.
*/
get_template_part( 'content', 'search' );
?>
<?php endwhile; ?>
<?php the_posts_navigation(); ?>
<?php else : ?>
<?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>
</main><!-- #main -->
</div><!-- #primary -->
非常感谢你们
**更新
kashalo提供的解决方案在一定程度上起到了作用,但搜索结果看起来仍然与产品页面略有不同,只在一列而不是网格中列出。
**更新
亚历山大·维格莫尔(Alexander Wigmore)提出的解决方案看起来几乎和我想要的一样。在search.php
中复制page.php
的唯一问题是,产品仍然会在何时显示,而不是在它们适合的类别中显示时。例如:搜索saat时,结果最初仅显示文本,但通常显示在Saatgut类别下的产品
我的建议是不要直接修改wp或主题模板的搜索文件,但使用子主题是一种很好的做法。对于结果的设计显示,您可以使用css进行一点自定义,而不是只显示产品,您可以使用基于正在使用的主题构建的任何过滤器(如果有),或者自己创建一个函数来过滤结果(也称为挂钩) 过滤结果的示例如上述代码所示:
add_action( 'pre_get_posts', 'filter_woocommerce_products' ); // the hook
function filter_woocommerce_products( $query ) { // the function
if( ! is_admin() && is_search() && $query->is_main_query() ) {
// verify if can use the search function and the search string is from the search call
$query->set( 'post_type', 'product' ); // filter the posts with type products that corrispond to woocommerce products.
}
}
此函数必须保存在主题或子主题的function.php文件中。
要了解更多信息,我建议您阅读更多关于儿童主题和wp页面上的pre_get_posts文档
希望有帮助,请随意提问 您需要修改Wordpress处理搜索的方式。 这可以通过添加一个“操作”轻松完成,将下面的代码添加到
functions.php
文件中
function searchfilter($query) {
if ($query->is_search && !is_admin() ) {
$query->set('post_type',array('product'));
}
return $query;
}
add_filter('pre_get_posts','searchfilter');
这将使搜索页面仅显示产品。值得注意的是,您可以通过这一行中的
array
添加其他post类型:$query->set('post_type',array('product')代码>我还可以将搜索结果限制为“象牙搜索”插件中的产品,但结果显示方式的问题仍然存在。@TorbenWiesbach看起来您的搜索结果页面与您的产品/归档页面的样式不同。请尝试将产品存档的内容复制/粘贴到搜索结果模板文件中。很抱歉这么晚才回复。我也试过你的建议,但只起了部分作用。我还将搜索结果的图像添加到了主帖子中。我还可以将搜索结果限制为“象牙搜索”插件中的产品,但结果显示方式的问题仍然存在。要了解我希望搜索结果的外观以及它们当前的外观,请查看我在描述中添加的图片。我已经看到了您包含的图片,通常是通过使用主题的特定模板完成的,并使用css进行样式设置。我建议您尝试探索您想要的页面的css,开始稍微修改结果页面的外观,如果您有任何问题,您可以共享您正在使用的样式代码。让我们为你做这件事不是这样做的目的。希望你能理解这一点。请看看这里,重新开始:对不起。我不想听起来有任何不尊重。我的意图不是要你提供详细的说明,而是想知道在哪里设置更改,因为我自己无法解决这个问题。这可能与我是css、js和html等web开发的新手有关。我才刚刚开始,有基本的知识。我之所以寻求帮助,是因为我找不到任何适合我需要的解决办法。如果这个意图不符合的目的,所以我很抱歉。绝对没有问题:)看看悉尼网页的官方网页,似乎它没有任何具体的产品模板,所以在这种情况下,可湿性粉剂只是采取默认,这是相当差的。查看您的代码,get_template_part函数不使用任何内容来设置页面样式,因此请更改get_template_part('content','none');要获取模板部分(“内容”,获取发布格式());若要使用主题的帖子格式,请共享结果。谢谢。非常感谢你的建议。我尝试了您建议的更改,但此代码仅将产品图像添加到搜索结果中。kashalo建议的改变对我更有效,但是可以改进一点。你需要更改content search.php
而不是你上面发布的这个文件。问题是我没有完全访问数据库,content-search.php没有显示在WordPress编辑器中。这个文件不在数据库中,它在你的主题目录中。或者你的商店页面有相同的样式喜欢上面的图片吗?是的,那些截图是我商店的原始截图。