0
私はワードプレスウィジェットをコーディングしようとしていましたが、ウィジェット機能の$instance
変数は空ですが、理由はわかりません。
<?php the_widget('mi_widget'); ?>
と私は私のfunctions.php
ファイル内でこのようなウィジェットを登録しています:私は私のサイドバーの外でウィジェットを使用しています
class mi_widget extends WP_Widget {
public function __construct() {
// instrucciones para esta función
parent::__construct(
'mi_widget', // $id_base
'Soy un widget formidable', // $name
array('description' => __('Widget formidable que hace maravillas', 'mi-widget'),) // $widget_options
);
}
public function widget ($args, $instance) {
// instrucciones para esta función
extract($args);
echo $before_widget.$before_title;
echo print_r($instance['mi_campo']);
echo $after_title.$after_widget;
}
public function update ($new_instance, $old_instance) {
// instrucciones para esta función
$instance = array();
$instance['mi_campo'] = strip_tags($new_instance['mi_campo']);
return $instance;
}
public function form($instance) {
// instrucciones para esta función
if (isset($instance[ 'mi_campo' ])) {
$mi_campo = $instance[ 'mi_campo' ];
}
else {
$mi_campo = __('Valor por defecto', 'mi-widget');
}
?>
<p>
<label for="<?php echo $this->get_field_id('mi_campo'); ?>"><?php _e('Título:', 'mi-widget'); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id('mi_campo'); ?>" name="<?php echo $this->get_field_name ('mi_campo'); ?>" type="text" value="<?php echo esc_attr ($mi_campo); ?>" />
</p>
<?php
}
function get_field_name($field_name) {
return 'widget-' . $this->id_base . '[' . $this->number . '][' . $field_name . ']';
}
function get_field_id($field_name) {
return 'widget-' . $this->id_base . '-' . $this->number . '-' . $field_name;
}
} // Cierra la clase
、私はこのコードでfront-page.php
でそれを使用しています
function wpb_load_widget() {
register_widget('mi_widget');
register_sidebar(
array(
'name'=>'Home Widgets',
'id'=>'sidebar-1',
'class'=>'custome',
'description'=>'Here you can set the widgets that you want to display in home page.'
)
);
}
add_action('widgets_init', 'wpb_load_widget');