Basename/slug的条件字符串比较失败

时间:2016-06-16 作者:Badger

我试图为一个特定的页面显示一个特定的html块。我创建了一个条件语句,将页面的basename与字符串进行比较。

<?php if ( has_tag( \'Sponsor\' ) && basename( get_permalink() != \'sponsor-one\') ) : // show sponsor\'s footer if applicable ?>
<div class="sponsor-footer <?php echo basename( get_permalink() ); ?>">
    <p>Our text here</p>
</div>
<?php elseif ( has_tag( \'Sponsor\' ) && basename( get_permalink() == \'sponsor-one\') ) : // show sponsor one\'s footer if applicable ?>
<div class="sponsor-footer <?php echo basename( get_permalink() ); ?>">
    <p>Our other text here</p>
</div>
<?php endif; ?>
它总是输出第一个代码块,即使slug是“发起人”。

如果我var_dump( basename( get_permalink() ) ); 我明白了string(11) "sponsor-one", 那么,为什么说basename不等于“赞助商一号”?

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

条件的第二部分似乎是错误的

basename( get_permalink() != \'sponsor-one\') 应该是basename( get_permalink() ) != \'sponsor-one\'

请检查括号的结尾。如果这是唯一的条件,那么您可以在代码中else 语句,而不是另一个elseif.