我想出了一个解决方案,就是在Wordpress中没有显示一个侧边栏,而这个工具没有被小部件填充。为此,我从当前页面调用弹格,并将我的侧边栏命名为与页面中的弹格相同。
我使用自定义侧边栏插件添加侧栏。此插件在侧栏的id中添加“cs-”,位于侧栏的名称之前。例如,我已经将我的侧栏命名为'Test‘,而不是边栏的id将是'cs-test’。
现在,我希望我的php代码检查侧边栏的名称是否与页面中的段塞相同。所以我给the_slug打了个电话,在弹格之前我想添加cs-。在一些帮助下,我想到了这个:
<?php if ( is_active_sidebar( 'cs-'.the_slug(false) ) ) { ?>
<?php dynamic_sidebar( is_active_sidebar( 'cs-'.the_slug(false) ) ) ?>
<?php } else { ?>
<?php } ?>但这似乎没什么用。有什么办法解决这个问题吗?已经谢了!
发布于 2014-06-03 22:58:43
您正在将字符串cs-与函数the_slug(false)连接起来。根据函数返回的内容,此可能导致错误。
解决方案1:
您可以提前调用和保存函数,并连接两个vars:
<?php
$slug = the_slug(false); //Get return value
$slug = (string)$slug; //Force string conversion
$slug = 'cs-'.$slug; //Concate
if ( is_active_sidebar( $slug ) ) { ?>
<?php dynamic_sidebar( is_active_sidebar( $slug ) ) ?>
<?php } else { ?>
<?php } ?> 。
解决方案2:
如果需要这种类型的功能,通常尝试将字符串参数添加到the_slug()函数(应该是functions.php中的自定义函数),并在函数本身内进行连接:
function the_slug($boolen, $string='') {
//Your code
return $string.$your_var;
}您的侧边栏代码如下所示:
<?php if ( is_active_sidebar( the_slug(false, 'cs-') ) ) { ?>
<?php dynamic_sidebar( is_active_sidebar( the_slug(false, 'cs-') ) ) ?>
<?php } else { ?>
<?php } ?>https://stackoverflow.com/questions/24015254
复制相似问题