2017-02-22 3 views
0

Soo habe ich diesen Php-Code gemacht, um die Unterkategorien der aktuellen Kategorie aufzulisten. Es überprüft sogar, ob die Kategorie Kinder hat oder nicht und wenn es das tut, listet sie sie auf.wp_dropdown_categories nicht anklickbar

Das Problem ist jedoch, dass, während es auf meiner Website in Ordnung aussieht. Die Links funktionieren einfach nicht. Wenn ich eine Unterkategorie aus der Liste auswähle und darauf klicke, passiert nichts.

<?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); 
} 
?> 

Hier ist ein Bild von der Liste auf meiner Website:

Screenshot

Antwort

0

Dies ist mit der geändertenen Basis-URL und die hinzugefügte Zeile in meinem $ args Diese schickt mich zu 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

Ich habe Ihre Argumente geändert und 'name' => 'category_name' hinzugefügt, die den Schlüssel der Abfragevariablen von cat nach category_name ändern, den WP verwendet. Dann sollte es funktionieren. Es wird jedoch kein Dropdown angezeigt, da category ausgewählt wurde, da if ($ children) aussage, ich schlage vor, es zu entfernen oder durch etwas anderes zu ersetzen. – keyBeatz

+0

Super, das funktioniert jetzt voll !! –

0

Problem ist, dass Sie keine Handler festgelegt haben, die Anforderung senden/Prozess.

Ich werde Sie zu offiziellen Dokumentationsbeispielen umleiten, wo Sie reine PHP- oder Javascript-Lösungen finden können.

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

Wenn Sie etwas erklären müssen, bitte Kommentar abgegeben.

+0

es wie das „Dropdown geändert ohne Senden-Schaltfläche mit Hilfe von JavaScript (2) "Beispiel. Es ist jedoch immer noch nicht klickbar. Siehe den Code im Kommentar unten! –