快捷代码、超文本标记语言表格和多行

时间:2011-05-13 作者:VicePrez

我正在尝试构建一个短代码,该代码调用一个HTML表,该表具有固定数量的列和可变数量的行,具体取决于上下文。

很难管理—甚至可以通过HTML反复构建多个表。通过短代码创建固定的列和行没有问题。

通过使用一个简单的示例来说明:

假设我构建了一个包含4列和1行的表。

这4列将包含以下表格标题:

如果我想创建多行(产品1、产品2等),则如何,如果可能的话,我如何构建一个短代码,以便在我认为合适的情况下添加更多行—没有为表行创建单独的短代码(已经存在)。

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

在由某些字符分隔的单个变量中传递数据:

[myproduct cols="name,quantity,price" data="name1,5,2.00,name2,3,3.25"]
然后将其分解为一个数组并输出。我没有在这里讨论表标记,但您知道了:

function myproduct_func( $atts ) {
    extract( shortcode_atts( array(
        \'cols\' => \'none\',
        \'data\' => \'none\',
    ), $atts ) );

    $cols = explode(\',\',$cols);
    $data = explode(\',\',$data);
    $total = count($cols);

    $output = "";
    foreach($cols as $col):
        $output .= "| {$col} ";
    endforeach;

    $output .= "<br>";

    $counter = 1;
    foreach($data as $datum):
        $output .= "| {$datum} ";
        if($counter%$total==0):
            $output .= "<br>";
        endif;
        $counter++;
    endforeach;

    return $output;

}
add_shortcode( \'myproduct\', \'myproduct_func\' );

结束

相关推荐

Nested Shortcode Detection

如果您熟悉此代码<?php $pattern = get_shortcode_regex(); preg_match(\'/\'.$pattern.\'/s\', $posts[0]->post_content, $matches); if (is_array($matches) && $matches[2] == \'YOURSHORTCODE\') { //shortcode is being used }&#