簡體   English   中英

使用嵌套的遞歸簡碼

[英]Working with nested recursive shortcodes

我有以下兩個功能:

add_shortcode('section_block_container','dos_section_block_container');

function dos_section_block_container($atts, $content = null) {
    $content = do_shortcode($content);
    echo '<ul class="list-unstyled list-inline">' . $content . '</ul>';

}

add_shortcode('section_block','dos_section_blocks');

function dos_section_blocks($atts, $content = null) {

    // define attributes and their defaults
    extract( shortcode_atts( array (
        'first' => FALSE,
        'color' => '',
        'icon'  => '',
        'title' => '',
    ), $atts ) );

?>
    <li>
        <a href="" style="background-color: <?php echo $color; ?>" title="<?php echo $title; ?>" class="section-block show-grid col-12 col-sm-3 <?php // echo ($first == TRUE ? 'col-offset-3 ' : '') ?>col-lg-3">
            <h4><?php echo strip_tags ($title); ?></h4>
            <?php echo strip_tags($content); ?>
            <?php echo $icon; ?>
        </a>
    </li>

<?php

}

並在wp編輯器中使用遞歸[section_block]

[section_block_container]

[section_block color =“#001e61” title =“ Lorem Ipsum” icon =“” first =“ true”] [/ section_block]

[section_block color =“#001e61” title =“ Lorem Ipsum” icon =“” first =“ true”] [/ section_block]

[/ section_block_container]

問題是即使使用do_shortcode();列表也不會出現在容器內部,而是出現在容器外部do_shortcode();

簡碼不能echo
它必須return它。

Shortcode_APIdo_shortcode文檔。

function container($atts, $content = null) {
    $content = do_shortcode($content);
    return "<ul class='list-unstyled list-inline'>" . $content . "</ul>";
}

add_shortcode('section_block_containe','container');

function section_block_function($atts, $content = null) {

    // define attributes and their defaults
    extract( shortcode_atts( array (
        "first" => FALSE,
        "color" => '',
        "icon"  => '',
        "title" => '',
    ), $atts ) );

    $class = ($first)? 'col-offset-3 ':'';

    $li = 
      "<li>
         <a href='' style='background-color: ".$color."' title='".$title."' class='section-block show-grid col-12 col-sm-3 ".$class." col-lg-3'>
         <h4>".$title."</h4>
         ".$content."
         ".$icon."
         </a>
      </li>";
    return $li;
}

add_shortcode('section_block','section_block_function');

朋友,他唯一的錯誤是動作簡碼可與return一起使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM