我相信这样的事情会成功的。
EDIT
我的代码假定querystring值是post\\u类型,而不是像表单字段那样的整数。此外,您的表单字段名为“cat”,我认为WordPress保留了这个字段,至少我记得上次在查询字符串中使用“cat”时发生了冲突。
EDIT 2
(完成一些测试后,将筛选器从“posts\\u where”更改为“pre\\u get\\u posts”)
在函数中。php
function my_filter( $query )
{
if( is_search() )
{
$type = ( !empty( $_GET[\'your-field\'] ) ) ? $_GET[\'your-field\'] : "";
if( $type )
$query->set( \'post_type\', $type );
}
}
add_filter( \'pre_get_posts\', \'my_filter\' );