我刚刚学到(在Rob Vermeer的帮助下!)如何使用一个模板并能够根据页面调用不同的顶部图形,现在我想知道是否有以下可能:
我正在使用这个页面。php(默认模板)用于多个页面。这些页面的布局相同,但每个页面上的侧边栏内容将不同。我可以编写一个函数来指定“如果此页面调用此侧栏”,而不必创建单独的页面模板来调用不同的侧栏吗?
在codex,在这一页上http://codex.wordpress.org/Function_Reference/get_sidebar 它有一个部分:多边栏。我试着修改代码,但似乎不起作用。这似乎是我想要的,但在示例中,它使用的是股票页面,而我的页面有自定义名称--不知道这是否是问题所在。
另外,我在循环后调用侧栏-不知道这是否是问题所在?
我当前的(不工作)代码是:
<?php
if ( is_customer() ) :
get_sidebar(\'customer\');
elseif ( is_vendors() ) :
get_sidebar(\'vendors\');
elseif ( is_services() ) :
get_sidebar(\'services\');
else :
get_sidebar();
endif;
?>
我有称为侧栏客户、侧栏供应商、侧栏服务的侧栏,以及称为客户、供应商、服务等的页面。我在页面中有代码。php模板的位置,如果我有一个侧栏,我只需要:
<?php get_sidebar(); ?>
非常感谢您的帮助!
我觉得你离我想做的事情最近了,但不完全是这样。
首先,这个网站不是一个博客。它由几个“静态”页面组成。我有一个主页模板只为家;页面。php(默认)模板用于大多数内部页面,404模板和小页面的小一栏模板。
页面。php模板有2列-主要内容的区域更宽,右侧的列更窄。我想使用右边的列作为“侧边栏”,但每个页面的侧边栏内容会有所不同。
所以,假设我有这样的页面:客户服务、关于我们、服务和联系。我想使用该页面。php模板,但侧边栏内容会有所不同。在过去,我会注册4个(或5个,或者我需要多少)侧栏,然后创建单独的模板,模板的唯一区别是它们调用不同的侧栏。我只是想知道是否有更整洁的方式来做这件事。
我的想法是,我会有一个附在每个页面上的边栏,基本上会在页面中执行if/then。php,我通常会调用侧栏:如果这是客户服务页面,请调用客户服务侧栏;如果这是关于页面,请调用关于侧栏。
但我不知道这是否可能,如果可能,确切的步骤和措辞将是什么。我不知道我是否会使用页面名称、ID等。我想我需要创建的页面和注册的边栏,但之后我不知道该怎么做。我认为这是可能的,因为codex中“get sidebar”函数页面上的“Multi Sidebars”部分,但我可能误解了这一点。我的第一个条目中有链接;向下滚动页面,查看多个侧栏。
?谢谢
最合适的回答,由SO网友:Chip Bennett 整理而成
如果您使用的是静态页面,请尝试使用is_page()
对于您的条件。假设您的静态页面有slug、“客户”、“供应商”和“服务”:
<?php
if ( is_page( \'customers\' ) :
get_sidebar(\'customer\');
elseif ( is_page( \'vendors\' ) ) :
get_sidebar(\'vendors\');
elseif ( is_page( \'services\' ) ) :
get_sidebar(\'services\');
else :
get_sidebar();
endif;
?>
但我同意@markratledge的观点,使用一个侧边栏和小部件逻辑可能会更好。
SO网友:Jared
您是否在functions.php
文件
您使用的条件语句是否正确?您是否编写了一个名为is_customers()
其他人呢?默认情况下,WordPress不附带此选项。因为显示侧栏的代码page.php
, 只有is_page()
将返回true,因为它已经是WP中的函数。
如果您试图查看您所在的页面是否为自定义帖子类型,您可以使用以下内容:
Edited (a switch would be better to understand probably)
<?php
switch( get_post_type() ) {
case \'customer\': get_sidebar( \'customer\' ); break;
case \'vendors\': get_sidebar( \'vendors\' ); break;
case \'services\': get_sidebar( \'services\' ); break;
default: get_sidebar();
}
?>
该示例显示了如何根据切换要显示的侧栏
get_post_type()
并且还有一个默认回调。
否则,您需要使用WP已经内置的函数,或者创建自己的函数。始终检查WordPress Codex 要使用的有效函数。