在没有插件或代码的WordPress中创建HTML表

时间:2016-12-18 08:39:56

标签: php wordpress

我希望我的网站用户能够在不使用代码或插件的情况下创建表格。

最好通过在主题的function.php。

中编写一个函数

实施例: 如果用户输入

[table 4]
c1, c2, c3, c4, c5, c6
[end table]

我希望表标记内的数字4表示表格中的列数。每个昏迷表示每个细胞的结束。

我在主题的functions.php中尝试过替换函数。它帮助了我,但为此用户必须编写如下代码,这是不理想的。

[table]
[row]
[cell] c1 [/cell]
[cell] c2 [/cell]
[cell] c3 [/cell]
[cell] c4 [/cell]
[/row]
[row]
[cell] c5 [/cell]
[cell] c6 [/cell]
[/row]
[end table]

1 个答案:

答案 0 :(得分:2)

您可以使用Wordpress中的Shortcodes实现此目的。添加它们相对简单(请参阅the docs)。在主题functions.php中创建此短代码的基本工作示例如下:

function _my_theme_sc_table( $atts, $content )
{
    // Normalise the attributes:
    $a = shortcode_atts(array(
        'cols' => 4
    ), $atts);

    // Now extract the content (will be a CSV of items):
    $cells = explode(',', $content);
    $numCells = count($cells);
    $rows  = ceil( $numCells / $a['cols'] );

    $html = '<table>';
    $html.= '    <tbody>';

    for( $r = 0; $r < $rows; $r++ )
    {
        $html.= '    <tr>';

        for( $c = 0; $c < $a['cols']; $c++ )
        {
            $index = ($r * $a['cols']) + $c;
            $html.= '<td>'.( ($index < $numCells) ? trim($cells[$index]) : '' ).'</td>';
        }

        $html.= '   </tr>';
    }

    $html.= '    </tbody>';
    $html.= '</table>';

    return $html;

}   
add_shortcode( 'table', '_my_theme_sc_table' );

用法如下:

[table cols="4"]c1, c2, c3, c4, c5, c6[/table]