Eine register_sidebar function funktioniert, die andere nicht?

Hier ist, wie ich meinen Code in der functionsdatei eingerichtet habe:

register_sidebar(array( 'name' => 'Latest Updates', 'before_widget' => '', 'after_widget' => '', 'before_title' => '', 'after_title' => '' )); register_sidebar(array( 'name' => 'BBRB Loves (Video Width - 200px)', 'before_widget' => '', 'after_widget' => '', 'before_title' => '', 'after_title' => '' )); 

Die erste function register_sidebar wird in header.php aufgerufen und die zweite function wird in index.php aufgerufen. Wenn ich die Tags in der zweiten function before_widget und after_widget ( before_widget und after_widget ), werden die richtigen Tags ausgegeben. Aber wenn ich die gleichen öffnenden und schließenden Tags in die erste function

foobar

, wird nichts ausgegeben, aber der Standard

foobar

. Der einzige Unterschied zwischen den beiden ist, dass man im Header aufgerufen wird und der andere im Index aufgerufen wird. Beide Widgets werden jedoch im Dashboard angezeigt, und wenn ich sie mit Text bearbeite, werden beide ausgegeben – nur nicht die Vorher / Nachher-Tags. Was mache ich falsch?

Solutions Collecting From Web of "Eine register_sidebar function funktioniert, die andere nicht?"

Wenn ich eine Vermutung wagen musste, ist das Problem, dass Ihre erste register_sidebar () in functions.php aufgerufen und in widgets_init eingehängt wird, aber die zweite wird im head aufgerufen und daher nicht in widgets_init eingebunden. Ich kenne die Auswirkungen der Registrierung einer Sidebar nicht anders als bei widgets_init.

Gibt es einen besonderen Grund, dass beide Aufrufe nicht in der functions.php aufgerufen und in widgets_init eingebunden werden können?

Sie sollten alle Ihre Seitenleisten als function registrieren und sie in widgets_init einhängen.

Wenn du

loswerden willst, musst du dein eigenes Text-Widget schreiben, weil es dafür keinen Filter gibt.

in wp-includes / default-widgets.php hier ist wie das Text-Widget aufgebaut ist:

 /** * Text widget class * * @since 2.8.0 */ class WP_Widget_Text extends WP_Widget { function WP_Widget_Text() { $widget_ops = array('classname' => 'widget_text', 'description' => __('Arbitrary text or HTML')); $control_ops = array('width' => 400, 'height' => 350); $this->WP_Widget('text', __('Text'), $widget_ops, $control_ops); } function widget( $args, $instance ) { extract($args); $title = apply_filters( 'widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base); $text = apply_filters( 'widget_text', $instance['text'], $instance ); echo $before_widget; if ( !empty( $title ) ) { echo $before_title . $title . $after_title; } ?> 
< ?php echo $instance['filter'] ? wpautop($text) : $text; ?>
< ?php echo $after_widget; } function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = strip_tags($new_instance['title']); if ( current_user_can('unfiltered_html') ) $instance['text'] = $new_instance['text']; else $instance['text'] = stripslashes( wp_filter_post_kses( addslashes($new_instance['text']) ) ); // wp_filter_post_kses() expects slashed $instance['filter'] = isset($new_instance['filter']); return $instance; } function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => '', 'text' => '' ) ); $title = strip_tags($instance['title']); $text = esc_textarea($instance['text']); ?>

/> 

< ?php } }

Sie können einen Teil des Codes wiederverwenden, um Ihre eigene Version eines Text-Widgets zu erstellen. Stellen Sie jedoch sicher, dass Sie keine classn- oder functionsnamen verwenden.