WordPress小部件不在正面显示

时间:2015-02-13 08:03:28

标签: php wordpress widget

使用不会在前端显示的类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' );

2 个答案:

答案 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 ); ?>