我有这个代码:
<?php if ( is_active_sidebar('lt') && is_active_sidebar('rt')) { ?>
<div class="grid_6 eqh">
<?php } elseif ( !is_active_sidebar('lt') || !is_active_sidebar('rt')) { ?>
<div class="grid_9 eqh">
<?php } elseif ( !is_active_sidebar('lt') && !is_active_sidebar('rt')) { ?>
<div class="grid_12 eqh">
<?php }; ?>
这是我正在开发的 wordpress 主题的一部分。它应该根据侧边栏是否处于活动状态显示不同的类。如果侧边栏处于活动状态,我从 wp 得到的响应是 1,如果不是,则为 NULL。如果'lt'侧边栏处于活动状态,它会起作用,但'rt'不是,它会显示'grid_9' div,如果没有任何侧边栏处于活动状态,它会显示'grid_12' div,但如果'rt'侧边栏处于非活动状态且“lt”处于活动状态,它仍显示“grid_6”div。如果我删除第一个 if 语句:
<?php if ( is_active_sidebar('lt') && is_active_sidebar('rt')) { ?>
它不显示任何 div。
我已经尝试了所有想到的组合,我已经分离了:
<?php } elseif ( !is_active_sidebar('lt') || !is_active_sidebar('rt')) { ?>
在 2 个不同的语句中,尝试单独的 if 语句而不使用 'elseif',尝试使用 'AND' 和 'OR' 而不是 '&&' 和 '||' 和一大堆其他变体,但没有任何效果。
如果有人可以帮助我或至少让我朝着正确的方向前进,我将不胜感激。
根据@one-trick-pony 的建议,代码现在是:
<?php
$ltActive = is_active_sidebar('lt');
$rtActive = is_active_sidebar('rt');
if($ltActive && $rtActive){
$class = 'grid_6';
}elseif(!$ltActive && !$rtActive){
$class = 'grid_12';
}else{
$class = 'grid_9'; // <==
}
?>
<div class="<?php echo $class; ?> eqh">
php 代码正在运行,但似乎 WP 中的is_active_sidebar()
函数存在错误,但他们忽略了我在 WP 支持论坛上的问题。