我需要根据用户位置显示小部件,出于测试目的,我使用以下代码创建了
if( function_exists( \'register_sidebar\' ) )
register_sidebar( array( \'name\'=>\'Madurai-Right\',
\'before_widget\' => \'<div class="widget relativ">\',
\'after_widget\' => \'</div>\',
\'before_title\' => \'<h2>\',
\'after_title\' => \'</h2>\',
) );
获取如下小部件
<?php $city="Madurai"; echo $side_bar= "\'$city-Right\'"; ?>
<?php if ( !function_exists( \'dynamic_sidebar\' ) || !dynamic_sidebar($side_bar) ) :?>
<?php endif; ?>
这里的城市是位置,因此根据位置,我得到侧边栏
dynamic_sidebar($side_bar)
它不起作用
但是如果我不使用变量asedynamic_sidebar(\'Madurai-Right\')
效果很好,有什么想法吗?我的代码有什么问题?
SO网友:Jacer Omri
尝试编写更简单的代码:更改
$side_bar= "\'$city-Right\'";
至
$side_bar= $city . \'-Right\';
你有多余的
\'
在里面
$side_bar
, 你这样做会让你
\'Madurai-Right\'
但你需要
Madurai-Right
, 这边
dynamic_sidebar($side_bar)
就像写作一样
dynamic_sidebar("\'Madurai-Right\'")
而你只需要
dynamic_sidebar("Madurai-Right")
此外,始终避免变量替换,串联总是更安全。