如果属性的值是一个,则在shortcode中回显另一个

时间:2013-09-13 16:51:37

标签: php wordpress conditional echo shortcode

这是我的短代码:

    function sc_link( $atts ) {
    extract( shortcode_atts(
        array(
            'page' => '',
            'style' => 'button',
            'window' => 'self',
            'label' => 'Missing Label Tag: label=""',
        ), $atts )
    ); 
    return '<a href="' . $page . '" class="' . $style. '" target="_' . $window . '">' . $label . '</a>';
}
add_shortcode( 'mylink', 'sc_link' );

我希望能够做的是返回之前的条件:if $ window ='new'然后echo'blank'。

2 个答案:

答案 0 :(得分:1)

认为这是你试图做的事情,建议你做的是把窗口留空并只是在那上做一个if语句

您希望如何

    function sc_link( $atts ) {
    extract( shortcode_atts(
        array(
            'page' => '',
            'style' => 'button',
            'window' => 'self',
            'label' => 'Missing Label Tag: label=""',
        ), $atts )
    ); 

    if($window == "new"){
    $link = '<a href="' . $page . '" class="' . $style. '" target="_blank">' . $label . '</a>';
    }else{
    $link = '<a href="' . $page . '" class="' . $style. '" target="_self">' . $label . '</a>';    
    }

    return $link;
}
add_shortcode( 'mylink', 'sc_link' );

应该如何

    function sc_link( $atts ) {
    extract( shortcode_atts(
        array(
            'page' => '',
            'style' => 'button',
            'window' => '',
            'label' => 'Missing Label Tag: label=""',
        ), $atts )
    ); 

    if(!$window){
        $link = '<a href="' . $page . '" class="' . $style. '" target="_self">' . $label . '</a>';
    }else{
        $link = '<a href="' . $page . '" class="' . $style. '" target="' . $window . '">' . $label . '</a>';    
    }

    return $link;
}
add_shortcode( 'mylink', 'sc_link' );

The your shortcode will be link 

[shorcode page="" window="" label=""]

答案 1 :(得分:0)

这是一个简单的短代码条件输出示例。我建议保留这种语法,因为它可能会在战斗中迷失。

echo ($window === 'new') ? $window : '';

这种格式有条件吗?如果是真的该怎么办:如果错误该怎么办