我在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>
评论前必须登录!
注册