Debug-Fehler in der Sidebar

Ich benutze ein Kind Thema von twentyfourteen auf WordPress 3.8. Im Debug-Modus erhalte ich die folgenden Fehler bezüglich eines Widgets.

Hinweis: Versuch, die Eigenschaft von non-object in Zeile \ wordpress \ wp-content \ themes \ tema2014 \ functions \ widgets.php zu erhalten

update_post_meta($post->ID, "_sidebar", $_POST["link"]); 

Und

Hinweis: Undefinierter Index: Verknüpfen Sie in Zeile \ wordpress \ wp-content \ themes \ tema2014 \ functions \ widgets.php

 update_post_meta($post->ID, "_sidebar", $_POST["link"]); 

Und

Hinweis: Undefinierter Index: _Sidebar in \ wordpress \ wp-content \ themes \ tema2014 \ functions \ widgets.php in Zeile 121

 $link = $custom["_sidebar"][0]; 

Hier ist der vollständige Code.

 $dynamic_widget_areas = array ( 'sidebar-21' => __( 'Page Specific Sidebar 1', 'pietergoosen' ), 'sidebar-22' => __( 'Page Specific Sidebar 2', 'pietergoosen' ), 'sidebar-23' => __( 'Page Specific Sidebar 3', 'pietergoosen' ), 'sidebar-24' => __( 'Page Specific Sidebar 4', 'pietergoosen' ), 'sidebar-25' => __( 'Page Specific Sidebar 5', 'pietergoosen' ), 'sidebar-26' => __( 'Page Specific Sidebar 6', 'pietergoosen' ), 'sidebar-27' => __( 'Page Specific Sidebar 7', 'pietergoosen' ), 'sidebar-28' => __( 'Page Specific Sidebar 8', 'pietergoosen' ), 'sidebar-29' => __( 'Page Specific Sidebar 9', 'pietergoosen' ), 'sidebar-30' => __( 'Page Specific Sidebar 10', 'pietergoosen' ), ); foreach ( $dynamic_widget_areas as $id => $dynamic_widget_area ) { register_sidebar( array ( 'name' => __( $dynamic_widget_area, 'pietergoosen' ), 'id' => $id, 'description' => __( 'Page specific sidebars above the content sidebar', 'pietergoosen' ), 'before_widget' => '', 'before_title' => '

', 'after_title' => '

', )); } } add_action( 'widgets_init', 'pietergoosen_widgets_init' ); // Add dynamic sidebars add_action('admin_init', 'sidebar_init'); add_action('save_post', 'save_sidebar_link'); function sidebar_init(){ add_meta_box("sidebar_meta", "Sidebar options", "sidebar_link", "page", "side", "default"); } function sidebar_link(){ global $post, $dynamic_widget_areas; $custom = get_post_custom($post->ID); $link = $custom["_sidebar"][0]; ?>

Choose the sidebar to use with this page.

ID;} update_post_meta($post->ID, "_sidebar", $_POST["link"]); } add_action('admin_head', 'sidebar_css'); function sidebar_css() { echo' .sidebar-selection{width:100%;} '; }

Irgendwelche Ideen, wie man das triggers?

Solutions Collecting From Web of "Debug-Fehler in der Sidebar"

Sie sollten prüfen, ob die Variable existiert, bevor Sie sie verwenden. isset() gibt true zurück, wenn eine Variable festgelegt wurde und nicht null ist.

Beispielsweise:

 update_post_meta($post->ID, "_sidebar", $_POST["link"]); 

wird werden:

 if ( isset( $_POST["link"] ) ) { update_post_meta( $post->ID, "_sidebar", $_POST["link"] ); } 

Abgesehen davon ist es eine gute Idee, Ihre Daten vor dem Speichern zu validieren .

Ja, ich habe die gleichen Warnungen und Hinweise mit Version 3.8 bemerkt, aber es gibt keine Hinweise wie in Version 3.7, was Sie in diesem Fall tun können, ist die Verwendung

 $variable = empty($_POST["link"])? 'default_value' : $_POST["link"]; 

Wenn Sie Benachrichtigungen unterdrücken möchten, gehen Sie zu wp-config.php und ändern Sie die Konstante WP_DEBUG in false.

 define('WP_DEBUG',false);