如何创建自定义窗口小部件区域并将内容存储在页脚中?

时间:2018-10-22 04:49:38

标签: php wordpress widget footer wordpress-plugin-creation

我想创建一个自定义窗口小部件区域并将其内容存储在页脚中。

我正在将其作为我正在创建的插件的一部分。因此,在主插件文件中,我尝试了:

 if ( function_exists('register_sidebar') )
 register_sidebar(array(
'name' => 'Name of Widgetized Area',
'before_widget' => '<div class = "widgetizedArea">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>',
)
);

,但是在wordpress管理员外观->小部件中没有显示小部件区域。

这是第一个问题...另一个是:当我弄清楚如何添加小部件区域时,如何实现将存储在该自定义小部件区域中的小部件放在页脚中?我正在考虑将其添加到我正在使用的主题的footer.php文件中:

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar("Name of 
Widgetized Area") ) : ?>
<?php endif;?>

我不确定这是正确的...另一个问题是:我将其直接添加到我正在使用的主题的footer.php中,因此这意味着如果另一个主题该插件将无法工作已安装并激活。我应该编写一个函数来查找footer.php文件,然后在其中写入它,还是应该做其他事情。如果主题没有footer.php文件怎么办?

1 个答案:

答案 0 :(得分:0)

有两种添加小部件的方法: 1)使用页面上的小部件插件 2)您可以使用代码添加小部件。

1)您可以直接在页面上安装窗口小部件插件。您可以在那里轻松创建插件。我将显示在小部件中,它将生成一个简码,您可以将其放置在footer.php或要显示小部件的任何其他文件中

2)您可以使用以下代码创建小部件区域: 将此代码添加到您的主题funtion.php

 function arphabet_widgets_init() {

    register_sidebar( array(
        'name'          => 'Home right sidebar',
        'id'            => 'home_right_1',
        'before_widget' => '<div>',
        'after_widget'  => '</div>',
        'before_title'  => '<h2 class="rounded">',
        'after_title'   => '</h2>',
    ) );
}
add_action( 'widgets_init', 'arphabet_widgets_init' );

,然后将此代码添加到footer.php

<?php if ( is_active_sidebar( 'home_right_1' ) ) : ?>
    <div id="primary-sidebar" class="primary-sidebar widget-area" role="complementary">
        <?php dynamic_sidebar( 'home_right_1' ); ?>
    </div><!-- #primary-sidebar -->
<?php endif; ?>

这是输出小部件的功能:

<?php dynamic_sidebar( 'home_right_1' ); ?>

希望这会对您有所帮助。