Shortcodes, tabelas HTML e várias linhas

Estou tentando construir um código curto que chama uma tabela HTML com um número fixo de colunas e um número variável de linhas dependendo do contexto.

É difícil gerenciar – ou mesmo construir, várias tabelas repetidamente através do HTML. Não tive problemas para criar colunas e linhas fixas através de códigos curtos.

Para ilustrar através do uso de um exemplo trivial:

Vamos assumir que eu construo uma tabela com 4 colunas e 1 linha.

As 4 colunas conterão os seguintes headers de tabela:

  1. Nome do Produto
  2. Quantidade
  3. Preço por item
  4. Preço total

E se eu quisesse criar várias linhas (Produto 1, Produto 2, etc.), se possível, como posso criar um código curto que me permite adicionar mais linhas como eu acho conveniente – sem criar um código curto separado para as linhas da tabela (esteve lá).

Solutions Collecting From Web of "Shortcodes, tabelas HTML e várias linhas"

passe seus dados em variables ​​individuais delimitadas por algum char:

[myproduct cols="name,quantity,price" data="name1,5,2.00,name2,3,3.25"] 

então explodi-lo em uma matriz e saída. Eu não me incomoda com a marcação da mesa aqui, mas você consegue a ideia:

 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 .= "
"; $counter = 1; foreach($data as $datum): $output .= "| {$datum} "; if($counter%$total==0): $output .= "
"; endif; $counter++; endforeach; return $output; } add_shortcode( 'myproduct', 'myproduct_func' );