Wie behebe ich diesen Fehler: Warnung: ungültiges Argument für foreach () geliefert?

Ich habe kürzlich eine WordPress-Installation von meiner lokalen Instanz auf einen Dev-Server verschoben. Für den Umzug habe ich eine saubere Version von WordPress 3.4 installiert, exakte Duplikate der Dateistruktur verschoben und die Import / Export-function verwendet, um die Posts einzubringen.

Ich ging dann hinein und stellte die notwendigen Widgets und Einstellungen ein. Ich habe das 100 Mal gemacht und hatte dieses Problem nie. Hier ist der Fehler:

Warnung : In Zeile 1285 wurde ein ungültiges Argument für foreach() in /home/content/46/9411746/html/dev/wp-admin/includes/plugin.php angegeben

Es erscheint nur im Admin-Menü. Ich sehe es, wenn ich versuche, ein Widget hinzuzufügen, eine Einstellung zu ändern, mit Menüs zu arbeiten oder Metadaten für einen Beitrag zu aktualisieren. Es erscheint im Admin-Menü.

Hier ist die function, die den Fehler in includes / plugin.php austriggers

 function remove_menu_page( $menu_slug ) { global $menu; foreach ( $menu as $i => $item ) { if ( $menu_slug == $item[2] ) { unset( $menu[$i] ); return $item; } } return false; } 

Ich benutze Aussehen> Menüs und habe zwei hier in functions.php hier registriert:

 add_action( 'init', 'register_my_menus' ); function register_my_menus() { register_nav_menus( array( 'header-nav' => __( 'Main Header Navigation', 'kyosay' ), 'footer-nav' => __( 'Footer Navigation', 'kyosay' ) ) ); } 

Ich mache eine andere Anpassung des Admin-Panels, ordne einige Menüpunkte neu und beseitige andere, die meine Kunden nicht brauchen. Ich kann diesen Code einbeziehen, wenn Sie meinen, dass er relevant ist.

Da dieses Problem im core ausgetriggers wird, weiß ich nicht, wie ich es beheben kann. Hinweis: das Problem tritt nicht auf meinem lokalen Build auf. Gedanken?

Bearbeiten: Code remove_menu_items aus functions.php zur Referenz hinzugefügt

 function remove_menu_items() { remove_menu_page('link-manager.php'); // Links remove_menu_page('edit-comments.php'); // Comments } add_action( 'admin_init', 'remove_menu_items' ); 

Aktualisieren:
Ich habe functions.php als Quelle dieses Problems beseitigt. Es scheint bei Ajax-Ereignissen ausgetriggers zu werden (Ziehen eines neuen Widgets in eine Sidebar, Aktualisieren einer Metabox usw. Ich werde es deinstallieren und neu installieren und sehen, ob es noch immer geschieht. Könnte das etwas mit dem Webhost zu tun haben (Gottaddy) Es erscheint überhaupt nicht auf meinem lokalen Build.

Solutions Collecting From Web of "Wie behebe ich diesen Fehler: Warnung: ungültiges Argument für foreach () geliefert?"

Dies passiert normalerweise, wenn du versuchst, Admin-Navigations-Sachen zu machen, und du nicht in admin_menu . Wenn Sie sich vorher anmelden, wurde das $menu noch nicht erstellt.

 add_action('admin_menu', 'my_plugin_add_menu'); function my_plugin_add_menu(){ $ptype = 'my_post_type'; $ptype_obj = get_post_type_object( $ptype ); add_submenu_page( 'my-menu-item', $ptype_obj->labels->name, $ptype_obj->labels->all_items, $ptype_obj->cap->edit_posts, "edit.php?post_type=$ptype" ); } 

Ich hatte ein ähnliches Problem mit WordPress, fügte nur eine if-statement hinzu, um das Argument wie folgt zu überprüfen

 if(is_array($thearray)){ //use $thearray here } 

und die Warnung war weg !!