我正在开始创建一个WordPress短代码,我很难理解如何使用'Return'专门显示输出,我的代码是
if (!function_exists('kfl')) {
function kfl( $atts, $content = null ) {
extract(shortcode_atts(array(
'title' => 'Title goes here',
), $atts));
return "<div class=\"container panel\">";
return "<h3 class=\"kfl title\">".$title."</h3>";
return "</div>";
}
add_shortcode('kfl', 'kfl');
}
?>
当我使用它时,没有显示任何内容,如果我删除第二个返回行并将。$标题添加到第一行,我将获得容器面板和无样式标题。如果我用Echo替换返回它一切正常,但我认为必须有一个原因,必须使用'return'(在大多数tuts中)。
非常感谢任何建议或指导。
由于
答案 0 :(得分:1)
通常,注册为短代码的函数有一个变量,在该变量中逐步插入代码然后返回它。在你的情况下:
if (!function_exists('kfl')) {
function kfl( $atts, $content = null ) {
extract(shortcode_atts(array(
'title' => 'Title goes here',
), $atts));
$output = "<div class=\"container panel\">";
$output .= "<h3 class=\"kfl title\">".$title."</h3>";
$output .= "</div>";
return $output;
}
add_shortcode('kfl', 'kfl');
}
答案 1 :(得分:1)
代码中的问题来自:
return "<div class=\"container panel\">";
return "<h3 class=\"kfl title\">".$title."</h3>";
return "</div>";
当处理第一个return
时,控件将离开该函数,因此第二个和第三个returns
将不会被执行
如果你需要返回所有这些,然后将它们连接在一个变量中并最终返回它:
$return = "<div class=\"container panel\"><h3 class=\"kfl title\">".$title."</h3></div>";
return $return ;
否则,如果你只想显示所有这些,请使用:
echo "<div class=\"container panel\">";
echo "<h3 class=\"kfl title\">".$title."</h3>";
echo "</div>";
答案 2 :(得分:0)
一旦执行命中一个返回,它就会离开该函数。因此,连续三次返回意味着第二次和第三次永远不会被执行。你可以这样做,使用字符串连接运算符将这三个部分连接成一个字符串:
function foo() {
// blah blah blah
return
'...' .
'...' .
'...';
}
答案 3 :(得分:0)
您可以使用.
连接元素并在结尾返回结果:
$html = '';
$html .= '<div class="container panel">';
$html .= '<h3 class="kfl title">' . $title . '</h3>';
$html .= '</div>';
return $html;