Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WordPress更改搜索结果_Php_Wordpress_Search_Woocommerce - Fatal编程技术网

Php WordPress更改搜索结果

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

我有一个问题,我的WordPress主题(“Sydney”)显示的搜索结果是错误的。我只想展示WooCommerce产品,而不是仅仅列出帖子

这些产品应以漂亮的网格进行订购,如图所示:

目前,结果如下所示

如何更改搜索结果的显示方式

目前,我的
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编辑器中。这个文件不在数据库中,它在你的主题目录中。或者你的商店页面有相同的样式喜欢上面的图片吗?是的,那些截图是我商店的原始截图。