5
Ich habe gerade ein benutzerdefiniertes Widget selbst erstellt. Ich kann es im Widgetbereich sehen, aber ich kann es nicht mit dem Visual Composer Plugin im Editor finden. Ist irgendetwas in meinem Widget falsch? Mein Widget einfach verwendet dieses Beispiel, wie durch Wordpress.org bereitgestellt:Angepasstes Widget, das in Visual Composer nicht angezeigt wird
/**
* Adds Foo_Widget widget.
*/
class Foo_Widget extends WP_Widget {
/**
* Register widget with WordPress.
*/
function __construct() {
parent::__construct(
'foo_widget', // Base ID
__('Widget Title', 'text_domain'), // Name
array('description' => __('A Foo Widget', 'text_domain'),) // Args
);
}
/**
* Front-end display of widget.
*
* @see WP_Widget::widget()
*
* @param array $args Widget arguments.
* @param array $instance Saved values from database.
*/
public function widget($args, $instance) {
echo $args['before_widget'];
if (! empty($instance['title'])) {
echo $args['before_title'] . apply_filters('widget_title', $instance['title']). $args['after_title'];
}
echo __('Hello, World!', 'text_domain');
echo $args['after_widget'];
}
/**
* Back-end widget form.
*
* @see WP_Widget::form()
*
* @param array $instance Previously saved values from database.
*/
public function form($instance) {
$title = ! empty($instance['title']) ? $instance['title'] : __('New title', 'text_domain');
?>
<p>
<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>">
</p>
<?php
}
/**
* Sanitize widget form values as they are saved.
*
* @see WP_Widget::update()
*
* @param array $new_instance Values just sent to be saved.
* @param array $old_instance Previously saved values from database.
*
* @return array Updated safe values to be saved.
*/
public function update($new_instance, $old_instance) {
$instance = array();
$instance['title'] = (! empty($new_instance['title'])) ? strip_tags($new_instance['title']) : '';
return $instance;
}
} // class Foo_Widget
Dank @Grek .. Ich bin in der Lage einen Widget innen zu sehen Visual Composer-Backend-Editor. Es wäre hilfreich, wenn Sie dies auch kurz erläutern. –
Sie haben eine Erklärung im Code. Sie können Block konfigurieren und diese Konfigurationswerte beim Rendern abrufen. Render-Funktion ist renderMyBartag hier müssen Sie etwas HTML zurückgeben. –
@GregHmhmm Ich versuche, einen Container zu erstellen, aber ich erhalte einen Fehler beim Erstellen der Klasse innerhalb der Klasse .. der Fehler scheint zu auftreten, wenn ich 'if (class_exists ('WPBakeryShortCodesContainer')) {Klasse WPBakeryShortCode_Your_Gallery erweitert WPBakeryShortCodesContainer {}}' Wo muss ich diesen Code platzieren? – neoDev