我开始创建一个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');
}
?>
当我使用它时,不会显示任何内容,如果我删除第二个 Return 行并将 .$title 添加到第一行,我会得到容器面板和无样式的标题。如果我用 Echo 替换返回,一切正常,但我认为必须使用"返回"一定是有原因的(在大多数 tuts 中)。
任何建议或指导将不胜感激。
谢谢
通常,注册为简码的函数有一个变量,您可以在其中逐渐插入代码,然后返回它。在您的情况下:
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');
}
你的代码中的问题就在这里:
return "<div class='"container panel'">";
return "<h3 class='"kfl title'">".$title."</h3>";
return "</div>";
当处理第一个return
时,控件将离开函数,因此第二个和第 3 个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>";
一旦执行命中返回,它就会离开函数。因此,连续三次返回意味着第二次和第三次返回永远不会被执行。您可以执行以下操作,使用字符串连接运算符将三个部分连接成一个字符串:
function foo() {
// blah blah blah
return
'...' .
'...' .
'...';
}
您可以将
元素与.
连接起来,并在最后返回结果:
$html = '';
$html .= '<div class="container panel">';
$html .= '<h3 class="kfl title">' . $title . '</h3>';
$html .= '</div>';
return $html;