自定义主题上未显示小部件

时间:2019-12-17 作者:sialfa

我正在自定义主题中实现一些小部件区域。我注意到添加的小部件没有显示在我想要的地方,如果我为此创建自定义侧栏模板,它将显示为空白区域。是否可以检查主题是否有活动的小部件,以及如何检查?如何解决我面临的问题?下面是我使用的代码:

功能。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.

1 个回复
SO网友:Fadi Chamoun

尝试将两个侧栏/数组组合成一个函数。

function my_widgets() {
    register_sidebar(
       array(
       \'id\' => \'contact-info\',
       // add the rest here
       ),
    register_sidebar(
       array(
       \'id\' => \'social-links\',
       // add the rest here
       ))
    );
}
add_action(\'widgets_init\', \'my_widgets\');
然后调用deisred提要栏

<?php if(is_active_sidebar(\'contact-info\')) : ?>
   <?php dynamic_sidebar(\'contact-info\'); ?>
<?php endif; ?>

相关推荐

上传较大的文件时出现Async_Upload.php 500错误,但互联网连接速度较慢且延迟

我的页面在运行IIS 10的Windows 2016服务器上的本地公司网络上运行。PHP 7.1WordPress 5.3该页面用作视频平台。可上传高达2GB的视频。从我们在同一网络上的位置(上传速度25-50Mbps),上传工作没有任何问题。IIS、php中的相应参数。ini和wp配置。php设置正确。服务器和代理上的超时设置为2小时。问题是:超过300MB的上载将无法通过WAN从其他位置完成。该连接对应于约4Mbps的上载速度和130ms的延迟。如果我用这些设置在Chrome中模拟上传,那么最终会出现