2017-02-22 196 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) 「例如。但它仍然無法點擊。 請參閱下面的註釋中的代碼! –