Filtern Sie benutzerdefinierten Post-Typ mit mehreren Taxonomie-Dropdown-Menüs

Ich versuche, zwei Dropdown-Felder auf einer benutzerdefinierten Post-Typ-Seite namens Activities zu erstellen. Eine Taxonomiekategorie ist für Aktivitätenstufen und die andere für Aktivitätstyp. Mit dem, was ich jetzt habe, wenn Sie eines der Drop-Boxen leer lassen, wird die Suche auf eine 404-Seite gehen. Ich habe den Code aus diesem WordPress-Forum benutzt und das ist es, was ich in meinem functionsordner habe:

function get_terms_dropdown_grade_level($taxonomies, $args){ $myterms = get_terms($taxonomies, $args); $output =""; $output .="Select grade level"; foreach($myterms as $term){ $root_url = get_bloginfo('url'); $term_taxonomy=$term->taxonomy; $term_slug=$term->slug; $term_name =$term->name; $link = $term_slug; $output .="".$term_name.""; } $output .=""; return $output; } function get_terms_dropdown_type($taxonomies, $args){ $myterms = get_terms($taxonomies, $args); $output =""; $output .="Select activity type"; foreach($myterms as $term){ $root_url = get_bloginfo('url'); $term_taxonomy=$term->taxonomy; $term_slug=$term->slug; $term_name =$term->name; $link = $term_slug; $output .="".$term_name.""; } $output .=""; return $output; } 

Und das ist, was ich auf der Post-Archiv-Seite habe:

  

Filter by

<form action="" method="get">
'name','hide_empty'=>false); $select = get_terms_dropdown_grade_level($taxonomies, $args); $select = preg_replace("#]*)>#", "", $select); echo $select; ?> 'name','hide_empty'=>false); $select = get_terms_dropdown_type($taxonomies, $args); $select = preg_replace("#]*)>#", "", $select); echo $select; ?>

Wenn es sich um gute Informationen handelt, werde ich auch die URLs hinzufügen. Eine normale URL, die zur korrekten Suche führt, ist

[…] /? activities_grade_level = Grundschule & activities_type = engineering & submit = filter

Eine URL, wo einer der Drop-Boxen leer ist

[…] /? activities_grade_level =% 23 & activities_type = engineering & submit = filter wo% 23 etwas ersetzt hat, was Grundschule oder Mittelschule sein könnte

Eine URL, die zu der richtigen Kategorie führt, wäre

[…] / Aktivitäten_Typ / Technik /

oder

[…] / activities_grade_level / Mittelschule

Irgendwelche Vorschläge für diesen php und wordpress Anfänger?

Solutions Collecting From Web of "Filtern Sie benutzerdefinierten Post-Typ mit mehreren Taxonomie-Dropdown-Menüs"

Richtig, scheint ein wenig leer hier zu sein, aber ich habe das Problem selbst wieder herausgefunden. Der Trick bestand darin, leere Werte in den $ output-Variablen zu haben.

Damit

 $output .=""; 

NICHT

 $output .=""; 

Auf diese Weise können Sie zwei Dropdown-Menüs erstellen und Ihre Posts mithilfe Ihrer benutzerdefinierten Taxonomien filtern.

Fügen Sie dies in Ihre Datei functions.php ein

 function get_terms_dropdown_grade_level($taxonomies, $args){ $myterms = get_terms($taxonomies, $args); $output =""; return $output; } function get_terms_dropdown_type($taxonomies, $args){ $myterms = get_terms($taxonomies, $args); $output =""; return $output; } 

Fügen Sie diese auf der Seite ein, auf der die Dropdown-Menüs angezeigt werden sollen . (Ich habe meine auf eine spezielle Archivseite gestellt, wie archive-activities.php.)

 

Filter by:

< ?php $taxonomies = array('MYTAXONOMY#1'); //CHANGE ME! $args = array('orderby'=>'name','hide_empty'=>false); $select = get_terms_dropdown_grade_level($taxonomies, $args); $select = preg_replace("#

Prost! 🙂