doufei9805 2014-10-31 00:19
浏览 32
已采纳

Shortcode API使用不同的属性更改返回值

I have an shortcode that i would like it to pass an different class once a certain attribute is added to the shortcode. How do you do that? or what is the best way to do this?

Shortcode:

function one_half_columns($atts, $content = null){
    $type = shortcode_atts( array(
        'default' => 'col-md-6',
        'push' => 'col-xs-6'
    ), $atts );

    return '<div class="' . $type['push'] . '">' . do_shortcode($content) . '</div>';;
}
add_shortcode('one_half', 'one_half_columns');

Example when wordpress user enter [one_half type="push"] i want it to use the value of push in array col-xs-6.

  • 写回答

1条回答 默认 最新

  • dongqie5529 2014-10-31 02:23
    关注

    You're example has a couple of problems - you are passing an argument of "type" in your shortcode, but then expecting arguments of "default" and "push" in your shortcode. What you want to do is assign the results of shortcode_atts() to $atts and then use an if statement or switch case on $atts['type'];

    function one_half_columns($atts, $content = null){
        // populate $atts with defaults
        $atts = shortcode_atts( array(
            'type' => 'default'
        ), $atts );
    
        // check the value of $atts['type'] to set $cssClass
        switch( $atts['type'] ){
            case 'push':
                $cssClass = 'col-xs-6';
                break;
            default:
                $cssClass = 'col-md-6';
                break;
        }
    
        return '<div class="' . $cssClass . '">' . do_shortcode($content) . '</div>';
    }
    add_shortcode( 'one_half', 'one_half_columns' );
    

    Now when you call:

    [one_half type="push"]my content[/one_half]
    

    You should get the output:

    <div class="col-xs-6">my content</div>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献