如果补充内容在补充工具栏中使用不同的页面模板

时间:2016-11-22 10:41:35

标签: php wordpress wordpress-theming

我使用UnderScore主题,下面是主要的page.php模板文件。我的目标是,如果侧边栏中有活动小部件,则使用带侧边栏的模板,但如果没有活动小部件或内容,则使用主要内容为960px但没有侧边栏的模板。我也使用ACF(高级自定义字段)是侧边栏,所以需要检查它。感谢任何帮助。我想也许可以使用“is_active_sidebar”但不确定如何正确地实现它,因为模板部件已经被检查。

get_header(); ?>
<div id="primary" class="content-area">
    <main id="main" class="site-main" role="main">
        <?php
        while ( have_posts() ) : the_post();
            get_template_part( 'template-parts/content', 'page' );
            // If comments are open or we have at least one comment, load up the comment template.
            if ( comments_open() || get_comments_number() ) :
                comments_template();
            endif;
        endwhile; // End of the loop.
        ?>
    </main><!-- #main -->
</div><!-- #primary -->
<?php
get_sidebar();
get_footer();

也低于sidebar.php

if ( ! is_active_sidebar( 'sidebar-1' ) ) {
    return;
}
?>
<aside id="secondary" class="widget-area" role="complementary">
    <?php dynamic_sidebar( 'sidebar-1' ); ?>
    <?php the_field('sidebar_info'); ?>
</aside><!-- #secondary -->

1 个答案:

答案 0 :(得分:0)

也许我没有完全理解你的问题,但你可以使用一个简单的if语句。请参阅下面的伪代码。

IDataSet databaseDataSet = getConnection().createDataSet();
ITable actualTable = databaseDataSet.getTable("TYPES");

FlatXmlDataSetBuilder flatXmlDataSetBuilder = new FlatXmlDataSetBuilder();
flatXmlDataSetBuilder.setColumnSensing(true);
FileInputStream fileInputStream = new FileInputStream(xml);
IDataSet expectedDataset = flatXmlDataSetBuilder.build(fileInputStream);
ITable expectedTable = expectedDataset.getTable("TYPES");

SortedTable sortedExpected = new SortedTable(expectedTable, new String[]{"ID"});
sortedExpected.setUseComparable(true);

SortedTable sortedActual = new SortedTable(actualTable, new String[]{"ID"});
sortedActual.setUseComparable(true);

Assertion.assertEqualsIgnoreCols(sortedExpected, sortedActual, new String[] {"ID"});