nach endlosem 'rumgefummel habe ich die (eine???) problematische Stelle gefunden: Die Kategorien sind bis zum Aufruf der Funktion "_get_cat_children" noch ok, und die verstümmelt dann das Ergebnis. :evil:
Die Datei /wp-includes/category.php ist aber auf meinem Test- und dem Live-Server identisch, kein Übertragungsfehler o.ä.!
Kann mir ein PHP-Experte evtl. erklären, was in diesem kleinen Schnipsel hier:
201 function &[URL="http://wordpress.taragana.net/_functions/_get_cat_children.html"]_get_cat_children[/URL]([URL="http://wordpress.taragana.net/_variables/category_id.html"]$category_id[/URL], [URL="http://wordpress.taragana.net/_variables/categories.html"]$categories[/URL]) {
202 if ( empty([URL="http://wordpress.taragana.net/_variables/categories.html"]$categories[/URL]) )
203 return array();
204
205 [URL="http://wordpress.taragana.net/_variables/category_list.html"]$category_list[/URL] = array();
206 foreach ( [URL="http://wordpress.taragana.net/_variables/categories.html"]$categories[/URL] as [URL="http://wordpress.taragana.net/_variables/category.html"]$category[/URL] ) {
207 if ( [URL="http://wordpress.taragana.net/_variables/category.html"]$category[/URL]->[URL="http://wordpress.taragana.net/_variables/category_parent.html"]category_parent[/URL] == [URL="http://wordpress.taragana.net/_variables/category_id.html"]$category_id[/URL] ) {
208 [URL="http://wordpress.taragana.net/_variables/category_list.html"]$category_list[/URL][] = [URL="http://wordpress.taragana.net/_variables/category.html"]$category[/URL];
209 if ( [URL="http://wordpress.taragana.net/_variables/children.html"]$children[/URL] = [URL="http://wordpress.taragana.net/_functions/_get_cat_children.html"]_get_cat_children[/URL]([URL="http://wordpress.taragana.net/_variables/category.html"]$category[/URL]->[URL="http://wordpress.taragana.net/_variables/cat_ID.html"]cat_ID[/URL], [URL="http://wordpress.taragana.net/_variables/categories.html"]$categories[/URL]) )
210 [URL="http://wordpress.taragana.net/_variables/category_list.html"]$category_list[/URL] = [URL="http://wordpress.taragana.net/_functions/array_merge.html"]array_merge[/URL]([URL="http://wordpress.taragana.net/_variables/category_list.html"]$category_list[/URL], [URL="http://wordpress.taragana.net/_variables/children.html"]$children[/URL]);
211 }
212 }
213
214 return [URL="http://wordpress.taragana.net/_variables/category_list.html"]$category_list[/URL];
215 }
Alles anzeigen
[size=8](Zitat entnommen von WordPress Source (Latest))
[/SIZE]
...in verschiedenen PHP-Versionen zu unterschiedlichen Ergebnissen führen kann?
Oder falls es irgendein PHP-"Schalter" sein sollte, welchen ich prüfen/umstellen muß?
Es sieht mir sehr danach aus, als wenn $category bei der Rekursion seinen Wert verliert bzw. dieser nach der Rückkehr nicht wiederhergestellt wird.
Danke...