试图在PHP中添加两个不同的字符串

时间:2014-06-03 12:31:29

标签: php wordpress plugins sidebar

我提出了一个解决方案,当没有填充小部件时,不会在Wordpress中显示侧边栏。我通过从当前页面调用slug并将我的侧边栏命名为与我的页面中的slug相同来完成此操作。

我使用Custom Sidebars插件添加侧边栏。这个插件在侧边栏名称之前的侧边栏的id中添加了“cs-”。例如,我将侧栏命名为“Test”,而侧边栏的ID则为“cs-test”。

现在我希望我的php代码检查边栏的名称是否与页面中的slug相同。所以我打电话给the_slug,在slug之前我要添加cs-。在一些帮助下,我想出了这个:

<?php if ( is_active_sidebar( 'cs-'.the_slug(false) ) ) { ?>
    <?php dynamic_sidebar( is_active_sidebar( 'cs-'.the_slug(false) ) ) ?>
    <?php } else { ?>
<?php } ?>

但这似乎没有帮助。有任何想法如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:0)

您正在使用函数cs-连接字符串the_slug(false)可能会导致错误,具体取决于函数返回的内容。

解决方案1:

您可以预先调用并保存该函数并连接两个变量:

<?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 } ?>