我想添加<input type="hidden" name="post_type" value="product">
在表单中搜索我将使用的任何主题。
我读到我不应该修改主题本身,但create a plugin.
所以我创建了插件:
add_filter(\'get_search_form\', \'my_search_form\');
function my_search_form($html) {
$html =\'
<form role="search" method="get" class="searchform" action="\'.esc_url( home_url( \'/\' ) ).\'>
<!--asdf!-->
<input type="hidden" name="post_type" value="product">
<input type="search" class="search-field" placeholder="\'.esc_attr_x( \'Search …\', \'placeholder\', \'estore\' ).\'" value="\'.esc_attr( get_search_query() ).\'" name="s">
<button type="submit" class="searchsubmit" name="submit" value="\'.esc_attr_x( \'Search\', \'submit button\', \'estore\' ).\'"><i class="fa fa-search"></i></button>
</form>\';
return $html;
}
主题有
searchform.php
使用原始表单,插件不会更改它。
我该怎么办?
最合适的回答,由SO网友:birgire 整理而成
这里有一种替代方法,只需product
post类型可从插件代码中搜索:
<?php
/** Plugin Name: Product Search Only **/
add_filter( \'register_post_type_args\', function( $args, $post_type )
{
$args[\'exclude_from_search\'] = true;
if( \'product\' === $post_type && (bool) $args[\'public\'] )
$args[\'exclude_from_search\'] = false;
return $args;
}, 999, 2 );
在这里,我们通过设置
exclude_from_search
为true,适用于所有帖子类型,公共帖子除外
product
岗位类型。如果需要,您可以调整延迟优先级。