2017-02-22 116 views
0

Soo我做了这个PHP代码来列出当前类别的子类别。 它甚至检查该类别是否有孩子,如果它包含孩子,则列出它们。wp_dropdown_categories不可点击

然而,问题是,虽然它看起来好像在我的网站上。链接根本不起作用。当我从列表中选择一个子类别并点击它时,什么都不会发生。

<?php 
$args = array(
'hierarchical' => 0, 
'orderby'=> 'title', 
'show_option_none' => 'Subcategories', 
'parent' => get_query_var('cat')); 

$term = get_queried_object(); 

$children = get_terms($term->taxonomy, array(
'parent' => $term->term_id, 
'hide_empty' => true 
)); 

if($children) { 

wp_dropdown_categories($args); 
} 
?> 

这是在我的网站列表中的图片:

Screenshot

回答

0

这是改变的基地址,并在我的$ args 附加线这把我送到http://www.papercraftplaza.com/category/animals/?cat=bear

<form id="category-select" class="category-select" action="<?php echo esc_url(home_url('/category/'.get_cat_name($cat).'/')); ?>" method="get"> 
<?php 
$args = array(
'cat' => get_query_var('cat'), 
'hierarchical' => 0, 
'value_field'  => 'slug', 
'orderby'=> 'title', 
'show_option_none' => 'Subcategories', 
'echo' => false, 
'parent' => get_query_var('cat')); 

$term = get_queried_object(); 

$children = get_terms($term->taxonomy, array(
'parent' => $term->term_id, 
'hide_empty' => true 
)); 

if($children) { 


$select = wp_dropdown_categories($args); 
$replace = "<select$1 onchange='return this.form.submit()'>"; 
$select = preg_replace('#<select([^>]*)>#', $replace, $select); 
echo $select; 

} 

?> 
<noscript> 
     <input type="submit" value="View" /> 
    </noscript> 

+0

我改变了参数并添加了'name'=>'category_name',它将查询变量的关键字从cat改为WP使用的category_name。那么它应该工作。但是,由于if($ children)语句,因为选择了类别,所以它不会显示下拉菜单,所以我建议将其删除或替换为其他内容。 – keyBeatz

+0

真棒现在完全有效! –

0

问题是你已经设置没有处理程序提交/处理请求。

我会重定向到官方documentatiun例子,在这里你可以找到纯PHP或javascript soulutions。

https://codex.wordpress.org/Function_Reference/wp_dropdown_categories#Examples

如果你需要解释一下,请留下评论。

+0

改成了像“下拉,而无需使用JavaScript的一个提交按钮(2) “例如。但它仍然无法点击。 请参阅下面的注释中的代码! –