我希望我的网站用户能够在不使用代码或插件的情况下创建表格。
最好通过在主题的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]
答案 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]