标题中的Wordpress dynamic_sidebar阻止了主题其余部分的呈现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了标题中的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' );
答案

问题是get_search_form()而不是侧边栏,你是否创建了searchform.php作为主题的一部分,或者你依赖于原生的wordpress表单?你最好使用普通的html作为你的搜索表单,例如

<form action="/" method="GET"> <input type="text" name="s"><input type="submit" value="Search"></form>

以上是关于标题中的Wordpress dynamic_sidebar阻止了主题其余部分的呈现的主要内容,如果未能解决你的问题,请参考以下文章

与 WAMP/Wordpress 中的站点和 Wordpress 地址混淆

XAMPP 中的 wordpress 文件夹在哪里?

如何使用 zee 样式主题更改 Wordpress 标题中的字体

wordpress中的多个摘录长度

wordpress 中的 XSS 攻击?

Wordpress - 使用查询字符串值更新标题中的所有菜单链接