hallo,
ich betreue folgende Seite, die mit Wordpress erstellt wurde. Sasse Weinimport
Seit neuestem funktioniert eine Registerkarte der Seitennavigation nicht, nämlich die mit dem meisten Unterseiten (Wein). Es kommt folgende Fehlermeldung:
Error 500 - Internal server error
Wenn ich über die Suchfunktion eine Seite suche, funktioniert auch die Seitennavigation wieder ordnungsgemäß und alle Seiten werden einwandfrei angezeigt.
Die Seite lief längere Zeit problemlos in gleicher Konfiguration. Ich benutze Wordpress 2.6 mit einem geringfügig abgänderten Theme MistyLook (DE).
Ich habe wissentlich nichts wesentliches verändert (d.h. weder in den Themes, noch andere plugins etc.) und die Seite lief längere Zeit in genau dieser Konfiguration problemlos. Für die Anzeige der Sidebar benutze ich das Folding Pages Widget.
Zusätzlich taucht in der Seitenverwaltung folgende Fehlermeldung auf (Fatal error: Call to a member function on a non-object in /homepages/35/d231491626/htdocs/wp-admin/includes/template.php on line 557) und es werden keine Seiten angezeigt. Die "Seiten durchsuchen" funktioniert aber einwandfrei und es werden dann auch die entsprechenden Seiten angezeigt.
Ich vermute, dass beide Probleme zusammenhängen, nur weiß ich leider nicht, wie ich das beheben kann.
Wisst ihr vielleicht eine Lösung?
PS: Ich poste den Abschnitt der template.php gleich mal mit:
* arrange pages into two parts: top level pages and children_pages
* children_pages is two dimensional array, eg.
* children_pages[10][] contains all sub-pages whose parent is 10.
* It only takes O(N) to arrange this and it takes O(1) for subsequent lookup operations
* If searching, ignore hierarchy and treat everything as top level
*/
if ( empty($_GET['s']) ) {
$top_level_pages = array();
$children_pages = array();
foreach ( $pages as $page ) {
// catch and repair bad pages
if ( $page->post_parent == $page->ID ) {
$page->post_parent = 0;
$wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET post_parent = '0' WHERE ID = %d", $page->ID) );
clean_page_cache( $page->ID );
}
if ( 0 == $page->post_parent )
$top_level_pages[] = $page;
else
$children_pages[ $page->post_parent ][] = $page;
}
$pages = &$top_level_pages;
}
$count = 0;
$start = ($pagenum - 1) * $per_page;
$end = $start + $per_page;
foreach ( $pages as $page ) {
if ( $count >= $end )
break;
if ( $count >= $start )
echo "\t" . display_page_row( $page, $level );
$count++;
if ( isset($children_pages) )
_page_rows( $children_pages, $count, $page->ID, $level + 1, $pagenum, $per_page );
}
// if it is the last pagenum and there are orphaned pages, display them with paging as well
if ( isset($children_pages) && $count < $end ){
foreach( $children_pages as $orphans ){
foreach ( $orphans as $op ) {
if ( $count >= $end )
break;
if ( $count >= $start )
echo "\t" . display_page_row( $op, 0 );
$count++;
}
}
}
}
Alles anzeigen