Wordpress简单的短代码练习

时间:2014-08-13 00:12:23

标签: php wordpress shortcode

我是Wordpress的新手,并尝试学习如何使用Shortcodes /创建自己的Shortcodes。

我从Wordpress Shortcode文档中开始使用非常简单的东西

// [bartag foo="foo-value"]
function bartag_func( $atts ) {
$a = shortcode_atts( array(
    'foo' => '',
), $atts );

    if ($a['foo'] = "red") {
         $output = "<span style='color:red;'>foo = {$a['foo']}</span>";
    }
    elseif ($a['foo'] = "blue") {
        $output = "<span style='color:blue;'>foo = {$a['foo']}</span>";
    }
    else {
        $output = "foo = {$a['foo']}";
    }
    return $output;
}
add_shortcode( 'bartag', 'bartag_func' );

它非常基本的PHP。一个属性(&#34; foo&#34;)。我的目标是有条件地输出不同颜色的文本。 所以,如果我在编辑器中输入[bartag foo =&#34; red&#34;]。文字应该是红色的。与蓝色相同。 出于某种原因,输出总是红色。

我知道这不是模块化的编程,但我还在学习:)

有人知道我的错吗?

最好的问候

2 个答案:

答案 0 :(得分:1)

=!== ===。您在ifelseif等处使用了错误的运算符。使用===

答案 1 :(得分:1)

您正在分配值而不是检查值 - 您必须使用相等运算符:

if ($a['foo'] === "red") {
     $output = "<span style='color:red;'>foo = {$a['foo']}</span>";
}
elseif ($a['foo'] === "blue") {
    $output = "<span style='color:blue;'>foo = {$a['foo']}</span>";
}
else {
    $output = "foo = {$a['foo']}";
}