Warum funktionieren URLs in URLs nicht, aber Slugs?

Ich bin verloren, ich verstehe nicht, warum das funktioniert

http://website.com/?tag=my-cat-slug 

und nicht das

 http://website.com/?tag=15 

Es ist wirklich ärgerlich, weil wp_dropdown_categories() nur IDs als Werte bereitstellt.

Ich habe versucht, die Permalinks in die Standardeinstellungen zu ändern, anstatt sie neu zu schreiben:

 http://website.com/?p=123 

Aber es hat nichts verändert

Solutions Collecting From Web of "Warum funktionieren URLs in URLs nicht, aber Slugs?"

Weil die tag Abfragevariable den Wert für die Begriffe slug erwartet. Es wird nach dem Begriff mit Slug ’15’ (der vermutlich nicht existiert) suchen.

Und, ja, es ist ziemlich frustrierend, dass wp_dropdown_categories() die ID als Wert verwendet und nicht den Slug. Dies liegt daran, dass es ursprünglich nur für Kategorien verwendet wurde (für die im Allgemeinen IDs anstelle von Slugs verwendet werden), im Gegensatz zu allgemeinen Taxonomien.

Aber da ist dieses Ticket drauf . Ich habe dieses Gist erstellt , mit dem Sie wp_dropdown_categories() Slugs anstelle von IDs für den Wert verwenden können.

Als Referenz (die folgende class sollte in ein Plug-in gehen):

 /* * A walker class to use that extends wp_dropdown_categories and allows it to use the term's slug as a value rather than ID. * * See http://core.trac.wordpress.org/ticket/13258 * * Usage, as normal: * wp_dropdown_categories($args); * * But specify the custom walker class, and (optionally) a 'id' or 'slug' for the 'value' parameter: * $args=array('walker'=> new SH_Walker_TaxonomyDropdown(), 'value'=>'slug', .... ); * wp_dropdown_categories($args); * * If the 'value' parameter is not set it will use term ID for categories, and the term's slug for other taxonomies in the value attribute of the term's \n"; } } 

Verwendung

 $args=array( 'walker'=> new SH_Walker_TaxonomyDropdown(), 'value'=>'slug', .... ); wp_dropdown_categories($args); 

Der Parameter ‘value’ ist optional. Der Standardwert ist ‘id’ für Kategorien und ‘slug’ für andere Taxonomien.