我需要将搜索设置为主题的一部分,仅搜索产品。目前,它会搜索整个平台。
这不是自定义表单,我只需要能够更改默认搜索操作即可。因此,它不是转到/ s?green,而是在URL中包含“产品”代码,因此仅搜索产品。
add_filter( 'pre_get_posts', 'custom_pre_get_posts' );
function custom_pre_get_posts( $query ) {
if ( is_search() ) {
$query->set('post_type', 'product');
}
return $query;
}
我们只希望它在产品图块中显示产品,而不是博客结果。
答案 0 :(得分:0)
如果仅在网站上搜索product
帖子类型,则可以创建自己的searchform.php
模板以包含此隐藏字段:
<input type="hidden" name="post_type" value="product" />
您可以将其放置在form
HTML标记内的任何位置。如果没有searchform.php
文件,并且您使用的是HTML5表单支持,则以下是WP默认输出的内容。
<form role="search" method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>">
<input type="hidden" name="post_type" value="product"/>
<label>
<span class="screen-reader-text"><?php _e( 'Search for:', 'label' ); ?></span>
<input type="search" class="search-field" placeholder="<?php esc_attr_e( 'Search …', 'placeholder' ); ?>" value="<?php echo get_search_query(); ?>" name="s"/>
</label>
<input type="submit" class="search-submit" value="<?php esc_attr_e( 'Search', 'submit button' ); ?>"/>
</form>
您可以将以上代码添加到自己的searchform.php
中,并将其添加到THEME目录的根目录。
答案 1 :(得分:0)
它在根主题区域的功能文件中。我们直接针对它,他们将其取出,将其置于子主题中,在代码中编辑了Form标记,然后它起作用了。