Specific loop in Shortcode

时间:2015-03-14 作者:Hussy571

我在做短码,我被困在这里了。以下是代码:

add_shortcode(\'service-shortcode\', \'service_shortcode\');

function service_shortcode($atts) 
{
extract( shortcode_atts( array(

   \'title\' => \'Service One\',
   \'icon\' => \'fa-briefcase\'

    ), $atts ));
$return_string = \'\';

$return_string .= \'<div class="service">\';
    $return_string .= \'<div class="container">\';
        $return_string .= \'<div class="row">\';
            $return_string .= \'<div class="col-md-3 col-sm-6">\';
                $return_string .= \'<div class="service-icon wow animated fadeInDown" data-wow-delay="300ms">\';
                    $return_string .= \'<i class="fa \'.$icon.\'"></i>\';
                $return_string .= \'</div>\';
                $return_string .= \'<div class="text wow animated fadeInUp" data-wow-delay="300ms">\';
                    $return_string .= \'<p>\'.$title.\'</p>\';
                $return_string .= \'</div>\';
            $return_string .= \'</div>\';
        $return_string .= \'</div>\';
    $return_string .= \'</div>\';
$return_string .= \'</div>\';

return $return_string;
}
现在,每当我放置短代码时,它都会输出完整的短代码。我想要的是它第一次输出完整的短代码,然后只从(div class=“col-md-3 col-sm-6”)输出到结束标记。所以所有的服务都会排成一行。。有什么方法可以实现吗。提前感谢。。

注意:我不想使用wp\\u查询创建存储每个服务和调用的自定义帖子类型。。。

1 个回复
最合适的回答,由SO网友:Sagive 整理而成

好的,伙计,我抓住你了<你真的应该分成两个短代码。一个用作包装器(非常短),另一个用于内容。。。

Example:

add_shortcode(\'servicewrap\', \'service_wrapsc\');
function service_wrapsc($atts, $content = null) {
    return \'<div class="service"><div class="container"><div class="row">\'.do_shortcode($content).\'</div></div></div>\';
}


add_shortcode(\'servicesingle\', \'service_singlesc\');
function service_singlesc($atts, $content = null) {

    extract(shortcode_atts(array(
        \'icon\'  => \'fa-briefcase\'
    ), $atts));


    return \'
    <div class="col-md-3 col-sm-6">\';
        <div class="service-icon wow animated fadeInDown" data-wow-delay="300ms"><i class="fa \'.$icon.\'"></i></div>
        <div class="text wow animated fadeInUp" data-wow-delay="300ms">
            <p>\'.do_shortcode($content).\'</p>
        </div>
    </div>\';
}

Than... You can do something like

[servicewrap]
    [servicesingle icon=""]Your title here[/servicesingle]
    [servicesingle icon=""]Your title here[/servicesingle]
    [servicesingle icon=""]Your title here[/servicesingle]
[/servicewrap]

结束

相关推荐

WP_QUERY LOOP ELSE语句未执行

我有两个WP_query 在我的frontpage中循环。php文件:<div id=\"aanbod\"> <div class=\"container-fluid section-name-cont\"> <div class=\"container\"> <div class=\"row\"> <div class=\"col-xs-12 section-name\"