我正在自定义主题中实现一些小部件区域。我注意到添加的小部件没有显示在我想要的地方,如果我为此创建自定义侧栏模板,它将显示为空白区域。是否可以检查主题是否有活动的小部件,以及如何检查?如何解决我面临的问题?下面是我使用的代码:
功能。php
function contact_widget()
{
register_sidebar(
array(
\'name\' => __(\'Contact\'),
\'id\' => \'contact-info\',
\'description\' => __(\'Contact info\'),
\'before_widget\' => \'<div class="col-sm-12 col-md-6 col-lg-6 contact-widget>\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h1>\',
\'after_title\' => \'</h1>\',
)
);
}
add_action( \'widgets_init\', \'contact_widget\' );
function social_widget()
{
register_sidebar(
array(
\'name\' => __(\'Social\'),
\'id\' => \'social-links\',
\'description\' => __(\'Link social\'),
\'before_widget\' => \'<div class="col-sm-12 col-md-6 col-lg-6 text-center>\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h1>\',
\'after_title\' => \'</h1>\',
)
);
}
add_action( \'widgets_init\', \'social_widget\' );
在定制器中,它将只显示我注册的第一个小部件,而不是第二个。在我想显示它们的主题部分,不会出现任何内容。Yhis是相对代码。
<?php if( function_exists(\'register_sidebar\') ): ?>
<div class="jumbotron jumbotron-fluid services-action">
<div class="container">
<div class="row">
<?php if( is_active_sidebar(\'contact-info\') ): ?>
<?php get_sidebar(\'contact-info\'); ?>
<?php endif; ?>
<?php if( is_active_sidebar(\'social-links\') ): ?>
<?php get_sidebar(\'social-links\'); ?>
<?php endif; ?>
</div>
</div>
</div>
<?php endif; ?>
我希望仅当小部件处于活动状态时才显示此部分。
如果我不同时创建sidebar.php
文件它们目前只包含以下代码行:
// sidebar-social.php
<?php dynamic_sidebar(\'social-info\'); ?>
// sidebar-contact.php
<?php dynamic_sidebar(\'contact-info\'); ?>
// sidebar.php
<?php get_sidebar(); ?>
```
Since the needed div classes are declared inside the registration of the sidebars I\'ve not implemented nothing as html markup inside the templates files. If is possibile I will prefere to implement the div columns inside the sidebar template files instead using the `before_widget` and `after_widget`.
Any help will be appreciated.