正在注册边栏。显示了其他横幅

时间:2012-05-07 作者:Sidra Sultana

我需要注册一个测试侧栏,并将其包含在特定页面上。将侧栏注册为

register_sidebar(array(\'name\' => \'ABC\'));
其他横幅会显示在所有页面上。以前有4个已注册的动态侧栏PHP Code 与它们相关(横幅html)。在将任何横幅与新创建的边栏关联之前,我将它们显示出来。有人知道它是从哪里被冤枉的吗?

2 个回复
SO网友:Chip Bennett

您有三种选择:

为特定页面注册动态侧栏,然后创建page template 这需要dynamic_sidebar() 用于注册的侧栏is_page( $id ) 您的page.php 模板有条件地输出小部件代码,使用is_page( $id )

自定义页面模板

第一个选项将包括register_sidebar() 请来functions.php:

register_sidebar( array(
    \'name\' => \'Specific-Page Sidebar\',
    \'id\' => \'specific-page-sidebar\'
    // other array parameters omitted for brevity
) );
那么,你create a custom page template, e、 g。template-test-sidebar.php.

然后,在自定义页面模板的适当位置,通过dynamic_sidebar():

dynamic_sidebar( \'specific-page-sidebar\' );

is_page() 条件输入page.php

第二个选项更简单,但动态性较差,因为它需要您将页面ID硬编码到模板中。简单包裹dynamic_sidebar()is_page() 有条件的:

if ( is_page( $id ) ) {
    dynamic_sidebar( \'specific-page-template\' );
}
第三种方法涉及小部件本身的条件输出,这通常需要使用插件,例如Widget Logicany of several other related Plugins.

使用此方法,您不需要注册单独的动态侧栏。您只需使用一个现有的侧栏,然后插件提供一个in-Widget选项来指定要使用的条件逻辑,例如is_page( $id ) 以确定是否应显示小部件。

SO网友:Jeremy Jared

一个简单的条件语句将确保它只显示在单个页面上。你的问题有点难理解,所以我不确定这正是你需要的。如果您希望显示侧栏,但除非添加横幅,否则不显示横幅,然后仅在单个页面上显示,您应该澄清您的问题。

要在单个页面上包含提要栏或小部件,请使用此from提要栏。php:

<?php if ( is_page( 890 ) )  if ( ! dynamic_sidebar( \'top-sidebar\' ) ) : endif; ?>

结束

相关推荐