我在Wordpress中对这些代码感到困惑。
这允许我显示first-footer-widget
。
<div class="col-lg-6 col-md-6 col-sm-12">
<?php if ( !function_exists( 'dynamic_sidebar' ) || !dynamic_sidebar('first-footer-widget-area') ) ?>
</div>
<div class="col-lg-3 col-md-3 col-sm-6">
<?php if ( !function_exists( 'dynamic_sidebar' ) || !dynamic_sidebar('second-footer-widget-area') ) ?>
</div>
<div class="col-lg-3 col-md-3 col-sm-6">
<?php if ( !function_exists( 'dynamic_sidebar' ) || !dynamic_sidebar('third-footer-widget-area') ) ?>
</div>
然而,
我删除“!”它仍然有效。
<div class="col-lg-6 col-md-6 col-sm-12">
<?php if ( !function_exists( 'dynamic_sidebar' ) || dynamic_sidebar('first-footer-widget-area') ) ?>
</div>
我很困惑。
答案 0 :(得分:0)
如果函数不存在,那么第一个条件!function_exists( 'dynamic_sidebar' )
将返回true
,因此如果不执行令人兴奋的dynamic_sidebar
函数。
如果您从第二个值中移除!
,它只会使它(dynamic_sidebar
函数)返回false
(!true
,即false
) - 换句话说,如果函数返回!
,dynamic_sidebar
函数上的true
将返回false
,反之亦然。
总结:
// EVALUATED AS TRUE IF 'dynamic_sidebar' FUNCTION DOESN'T EXISTS, OR 'dynamic_sidebar' RETURNS FALSE
// EVALUATED AS FALSE IF 'dynamic_sidebar' FUNCTION EXISTS, AND 'dynamic_sidebar' RETURNS TRUE
if ( !function_exists( 'dynamic_sidebar' ) || !dynamic_sidebar('first-footer-widget-area') )
// EVALUATED AS TRUE IF 'dynamic_sidebar' FUNCTION DOESN'T EXISTS, AND 'dynamic_sidebar' RETURNS TRUE
// EVALUATED AS FALSE IF 'dynamic_sidebar' FUNCTION EXISTS, AND 'dynamic_sidebar' RETURNS FALSE
if ( !function_exists( 'dynamic_sidebar' ) || dynamic_sidebar('first-footer-widget-area') )
因此请检查dynamic_sidebar
函数是否存在 - 这可能就是为什么这个条件总是被评估为TRUE
的原因,即使您从!
移除了dynamic_sidebar()