所以我显然不是一个非常优秀的程序员。我写了这个小函数:
function dispAdjuggler($atts) {
extract(shortcode_atts(array(
'slot' => ''
), $atts));
$adspot = '';
$adtype = '';
// Get blog # we're on
global $blog_id;
switch ($blog_id) {
case 1:
// root blog HOME page
if (is_home()) {
switch ($slot) {
case 'top_leaderboard':
$adspot = '855525';
$adtype = '608934';
break;
case 'right_halfpage':
$adspot = '855216';
$adtype = '855220';
break;
case 'right_med-rectangle':
$adspot = '858222';
$adtype = '613526';
break;
default:
throw new Exception("Ad slot is not defined");
break;
}
当我在这样的页面上引用该函数时:
<?php dispAdjuggler("top_leaderboard"); ?>
交换机抛出默认异常。我在这里做错了什么?
谢谢!
答案 0 :(得分:2)
在不知道shortcode_atts()函数的作用的情况下,看起来你正在传入数组来设置默认值('slot'=空字符串),extract()然后转换为$short = ''
extract(shortcode_atts(array(
'slot' => ''
), $atts));
正确?现在$ slot是空字符串,它不会匹配交换机中的任何情况,因此默认情况会被触发,这会引发“广告位未定义”异常。
答案 1 :(得分:0)
您是否错过了提取类型参数?