个性化阅读
专注于IT技术分析

标头中的WordPress dynamic_sidebar阻止其余主题的渲染

我在header.php中使用dynamic_sidebar遇到了这个奇怪的问题。我创建了一个侧边栏以用于标题中, 因此可以在导航旁边显示搜索小部件。奇怪的是, 当我在header.php中渲染dynamic_sidebar时, 其余站点停止渲染。意味着在get_header函数之后它不会呈现任何其他内容, 但是我能够在标题中看到正确的侧边栏。当我只删除dynamic_sidebar时, 该网站再次正常显示

编辑:我使用WordPress 4.7.5, 因为我的客户端位于同一客户端, 并且我无权更新其客户端。我正在努力让他们升级

index.php

<?php get_header();?>
  <div id="content" role="main">
    <?php get_template_part( 'inc/my-template-part', 'default' ); ?>
  </div><!-- #content -->
<?php get_footer(); ?>

header.php

<header class="clearfix">
  <div class="header-inner">
    <h1 class="site-title logo">
      <a href="<?php echo esc_url( home_url( '/' ) ); ?>" 
        title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" 
        rel="home">
        <img class="w-100 db"
          src="<?php bloginfo('template_url'); ?>/images/logo.png" 
          alt="<?php bloginfo( 'name' ); ?>">
      </a>
    </h1>

    <nav class="main-navigation" role="navigation">
      <?php 
        wp_nav_menu( array(
            'theme_location' => 'primary', 'items_wrap' => '<ul class="menu-ul lst-n">%3$s</ul>'
          )); 
      ?>
    </nav>

    <!-- if I remove this part it works normally again -->
    <?php if ( is_active_sidebar( 'sidebar-nav-search' ) ) : ?>
      <?php dynamic_sidebar( 'sidebar-nav-search' ); ?>
    <?php endif; ?>

  </div>
</header>

functions.php

function my_widgets_init() {

  register_sidebar( array(
    'name' => __( 'Nav Search', 'my-theme-v2' ), 'id' => 'sidebar-nav-search', 'description' => __( 'Appears in the top main navigation at the far right', 'my-theme-v2' ), 'before_widget' => '', 'after_widget' => '', 'before_title' => '', 'after_title' => '', ) );

  register_sidebar( array(
    'name' => __( 'Footer', 'my-theme-v2' ), 'id' => 'sidebar-footer', 'description' => __( 'Appears in the footer of every page', 'my-theme-v2' ), 'before_widget' => '', 'after_widget' => '', 'before_title' => '', 'after_title' => '', ) );

}
add_action( 'widgets_init', 'my_widgets_init' );

#1


问题是get_search_form()而不是侧边栏, 你是否将searchform.php创建为主题的一部分, 还是依赖于本机wordpress表单?你最好使用纯HTML作为搜索表单, 例如

<form action="/" method="GET"> <input type="text" name="s"><input type="submit" value="Search"></form>
赞(0)
未经允许不得转载:srcmini » 标头中的WordPress dynamic_sidebar阻止其余主题的渲染

评论 抢沙发

评论前必须登录!