【问题标题】:How to add widget area to Wordpress theme? [Project AR2]如何将小部件区域添加到 Wordpress 主题? [项目 AR2]
【发布时间】:2014-01-01 20:41:26
【问题描述】:

我正在使用 Project AR2 主题,并尝试在滑块正下方放置一个小部件区域。我已经将此添加到我的 functions.php 文件中:

if ( function_exists('register_sidebar') ){
register_sidebar(array(
'name' => 'Below Slider Widgets',
'id' => 'below-slider-widgets',
'description' => 'The area below the Featured Posts slider. Great for small banner ads',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h2>',
'after_title' => '</h2>'
));
}

但现在我不知道在哪里添加这个:

<div class="belowslider">
<?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Below Slider Widgets')) :endif; ?>
</div>

首页的内容好像是动态渲染的,所以不像打开一个header.php文件然后粘贴到某个静态位置那么简单。

我的网站尚未上线,但这里是主题演示的链接: http://demo.arrastheme.com/

以及所有主题文件的链接: https://github.com/zyml/project-ar2

我认为关键可能在 home.php 文件中,但我可能错了。

任何帮助将不胜感激。

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    // 创建小部件

    class wpb_widget extends WP_Widget {
    
    function __construct() {
    parent::__construct(
    // Base ID of your widget
    'wpb_widget', 
    
    // Widget name will appear in UI
    __('WPBeginner Widget', 'wpb_widget_domain'), 
    
    // Widget description
    array( 'description' => __( 'Sample widget based on WPBeginner Tutorial', 'wpb_widget_domain' ), ) 
    );
    }
    
    // Creating widget front-end
    // This is where the action happens
    public function widget( $args, $instance ) {
    $title = apply_filters( 'widget_title', $instance['title'] );
    // before and after widget arguments are defined by themes
    echo $args['before_widget'];
    if ( ! empty( $title ) )
    echo $args['before_title'] . $title . $args['after_title'];
    
    // This is where you run the code and display the output
    echo __( 'Hello, World!', 'wpb_widget_domain' );
    echo $args['after_widget'];
    }
    
    // Widget Backend 
    public function form( $instance ) {
    if ( isset( $instance[ 'title' ] ) ) {
    $title = $instance[ 'title' ];
    }
    else {
    $title = __( 'New title', 'wpb_widget_domain' );
    }
    // Widget admin form
    ?>
    <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 
    }
    
    // Updating widget replacing old instances with new
    public function update( $new_instance, $old_instance ) {
    $instance = array();
    $instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
    return $instance;
    }
    } // Class wpb_widget ends here
    
    // Register and load the widget
    function wpb_load_widget() {
        register_widget( 'wpb_widget' );
    }
    add_action( 'widgets_init', 'wpb_load_widget' );
    

    【讨论】:

    • 感谢您的回复,但我实际上希望将小部件区域添加到特定主题中的某个位置(项目 AR2)
    猜你喜欢
    • 2012-12-16
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    相关资源
    最近更新 更多