您提供的示例之所以有效,是因为您创建的新模板连接到内容类别。php,默认情况下,它不存在于Astrid主题中。
我只对Astrid的代码进行了简短的扫描,但看起来只有一个侧栏,叫做index.php.
如果您试图避免特定存档和类别页面上的侧栏,请打开索引。php,您应该看到以下内容:
<?php
/**
* The main template file.
*
* This is the most generic template file in a WordPress theme
* and one of the two required files for a theme (the other being style.css).
* It is used to display a page when nothing more specific matches a query.
* E.g., it puts together the home page when no home.php file exists.
*
* @link https://codex.wordpress.org/Template_Hierarchy
*
* @package Astrid
*/
get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
if ( have_posts() ) :
if ( is_home() && ! is_front_page() ) : ?>
<header>
<h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
</header>
<?php
endif;
/* Start the Loop */
while ( have_posts() ) : the_post();
/*
* Include the Post-Format-specific template for the content.
* If you want to override this in a child theme, then include a file
* called content-___.php (where ___ is the Post Format name) and that will be used instead.
*/
get_template_part( \'template-parts/content\', get_post_format() );
endwhile;
the_posts_navigation();
else :
get_template_part( \'template-parts/content\', \'none\' );
endif; ?>
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_sidebar();
get_footer();
在索引的底部。php,
get_sidebar(); 调用时没有条件。
如果我正确理解您的问题,最简单的解决方法是将get\\u sidebar()方法包装在条件语句中,如下所示:
if( !is_category() && !is_archive() ) {
get_sidebar();
}