我在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>