如何插入特定页面(或帖子等)的窗口小部件区域?

时间:2013-03-30 作者:Otavio Vidal

我正在开发一个主题,其页面(以及帖子)与主页非常不同,因此我希望侧栏上有不同的小部件
有没有办法做到这一点?

我正在单曲上调用侧边栏。php就是这样,就像它在索引上一样。php:

<?php get_sidebar(); ?>
侧栏。php是这样的:

<?php
/**
 * The Sidebar containing the primary and secondary widget areas.
 ?>

    <aside>
        <ul>

<?php
    /* When we call the dynamic_sidebar() function, it\'ll spit out
     * the widgets for that widget area. If it instead returns false,
     * then the sidebar simply doesn\'t exist, so we\'ll hard-code in
     * some default sidebar stuff just in case.
 */
if ( ! dynamic_sidebar( \'primary-widget-area\' ) ) : ?>


    <?php endif; // end primary widget area ?>
    </ul>

<?php
    // A second sidebar for widgets, just because.
    if ( is_active_sidebar( \'secondary-widget-area\' ) ) : ?>

        <ul>
                <?php dynamic_sidebar( \'secondary-widget-area\' ); ?>
        </ul>

<?php endif; ?>

    </aside>

1 个回复
最合适的回答,由SO网友:Johannes Pille 整理而成

使用Conditional Tags 仅在满足特定条件时显示内容。

在您的情况下,您可能希望使用is_front_page().

<aside>
    <ul>

    <?php
        if ( function_exists( \'dynamic_sidebar\' ) ) {
             if ( is_front_page() ) {
                 if ( ! dynamic_sidebar( \'frontpage-widget-area\' ) ) {
                     echo \'<li>No sidebars for the frontpage.</li>\'; // some default output
                 }
             } else {
                 if ( ! dynamic_sidebar( \'primary-widget-area\' ) ) {
                     echo \'<li>No sidebars for posts/pages.</li>\'; // some default output
                 }
             }
        } else {
            echo \'<li>Sidebars disabled.</li>\'; // some default output
        }
    ?>

    </ul>
</aside>
假设这两个小部件区域已通过register_sidebar() 预先

结束

相关推荐

Sidebar limiting to 10 posts?

我的单曲中有以下代码。php页面:UPDATED CODE <?php if (have_posts()) : the_post(); $post_id = get_the_ID(); if ( is_single() ) { $cats = get_the_category(); $cat = $cats[0]; } else { // category archives