所以我得到了一个自定义搜索表单,其中包含三个下拉列表,其中包含三种不同的自定义分类法。
问题是,我需要地址中的分类法段塞,以便搜索正常运行,因为现在我只获得ID。如果我的产品类别名称为50, 搜索时,它输出分类ID,即6 在地址中。
像这样:
/?s=&product_category=6&product_maksuaika=14&product_ikaraja=0
应在何时:
/?s=&product_category=50&product_maksuaika=14&product_ikaraja=0
我拥有的三种分类法也是如此。
以下是我的功能:
function my_dropdown($name, $taxonomy = \'category\') {
$defaults = array(
\'taxonomy\' => $taxonomy,
\'id\' => $name,
\'name\' => $name,
\'show_option_none\' => \' - Select - \',
\'selected\' => get_query_var($name)
);
wp_dropdown_categories($defaults);
}
add_action(\'pre_get_posts\', \'my_customsearch\');
function my_customsearch() {
global $wp_query;
if ( !$wp_query->is_search ) {
return false;
}
$tax_query = array();
$operacion = get_query_var(\'product_category\');
$ubicacion = get_query_var(\'product_maksuaika\');
$precio = get_query_var(\'product_ikaraja\');
// first dropdown
if (!empty($operacion) && $operacion > 0) {
$tax_query[] = array(
\'taxonomy\' => \'product_category\',
\'field\' => \'id\',
\'terms\' => $operacion
);
}
// second dropdown
if (!empty($ubicacion) && $ubicacion > 0) {
$tax_query[] = array(
\'taxonomy\' => \'product_maksuaika\',
\'field\' => \'id\',
\'terms\' => $ubicacion
);
}
// third dropdown
if (!empty($precio) && $precio > 0) {
$tax_query[] = array(
\'taxonomy\' => \'product_maksuaika\',
\'field\' => \'id\',
\'terms\' => $ubicacion
);
if ( sizeof($tax_query) > 0 ) {
$tax_query[\'relation\'] = \'AND\';
$wp_query->query_vars[\'tax_query\'] = $tax_query;
}
return false;
}
// add my custom query vars
add_filter(\'query_vars\', \'mycustom_query_vars\');
function mycustom_query_vars($query_vars) {
$query_vars[] = \'operacion\';
$query_vars[] = \'ubicacion\';
$query_vars[] = \'precio\';
return $query_vars;
}
简单地将字段更改为数组中的段塞或名称并不能起到作用。
有什么想法吗?