使用不会在前端显示的类API结构来创建自定义窗口小部件。收集的数据存储在数据库中,并通过wp-admin进行更新。通过自定义程序查看时,窗口小部件将以不透明度显示为灰色,并在前端呈现。我看不出它出了什么问题:
function widget( $args, $instance ) {
extract( $args );
echo $args['before_widget'];
$title = apply_filters( 'widget_title', $instance['title'] );
$description = empty( $instance['description'] ) ? ' ' : $instance['description'];
if( !empty( $title ) ) { echo $args['before_title'] . $title . $args['after_title']; }
echo '<div class="cjd">';
echo '<input type="text" class="email" name="cjd-email"/>';
echo '<input type="button" class="subscribe-button" name="subscribe" value="'. _e( 'Add your email', 'cjd') .'" />';
echo '</div>';
echo $args['after_widget'];
}
代码调用小部件:
function cjd_subscribe_widget() {
$widget_ops = array(
'classname' => 'cjd-widget',
'description' => __( 'Adds a input form allowing newsletter subscription.', 'cjd' )
);
$this->WP_Widget( 'cjd_subscribe_widget', 'CJD: ' . __( 'Client Subscribe', 'cjd' ), $widget_ops );
}
小工具注册:
function cjd_register_widgets() {
register_widget( 'cjd_subscribe_widget' );
}
add_action( 'widgets_init', 'cjd_register_widgets' );
答案 0 :(得分:1)
已解决:原来我已将小部件放入is_admin()函数调用中。一旦在小部件外面显示。谢谢@JH
答案 1 :(得分:0)
我认为您需要先注册窗口小部件才能使用它。
class MyNewWidget extends WP_Widget {
function MyNewWidget() {
// Instantiate the parent object
parent::__construct( false, 'My New Widget Title' );
}
function widget( $args, $instance ) {
// Widget output
}
function update( $new_instance, $old_instance ) {
// Save widget options
}
function form( $instance ) {
// Output admin widget options form
}
}
function myplugin_register_widgets() {
register_widget( 'MyNewWidget' );
}
add_action( 'widgets_init', 'myplugin_register_widgets' );
并在您的functions.php文件中:
register_widget( $widget_class );
Function Reference with Wordpress Source
修改强>
尝试像this一样调用小部件:
<?php the_widget( $widget, $instance, $args ); ?>