我试图为一个特定的页面显示一个特定的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不等于“赞助商一号”?
最合适的回答,由SO网友:Chittaranjan 整理而成
条件的第二部分似乎是错误的
basename( get_permalink() != \'sponsor-one\')
应该是basename( get_permalink() ) != \'sponsor-one\'
请检查括号的结尾。如果这是唯一的条件,那么您可以在代码中else
语句,而不是另一个elseif
.