web-dev-qa-db-ja.com

ショートコード、HTMLテーブル、および複数行

コンテキストに応じて固定数の列と可変数の行を持つHTMLテーブルを呼び出すショートコードを作成しようとしています。

管理が難しく、あるいはHTMLを介して複数のテーブルを構築することさえできません。私はショートコードで固定の列と行を作成するのに問題はありませんでした。

簡単な例を使って説明します。

私は4列と1行を持つテーブルを構築すると仮定しましょう。

4列には、以下のテーブルヘッダが含まれます。

  1. 商品名
  2. アイテムあたりの価格
  3. 合計金額

可能であれば、テーブル行に別のショートコードを作成せずに、必要に応じて行を追加できるショートコードを作成する方法(行ったことがある)。

3
VicePrez

いくつかの文字で区切られた単一の変数でデータを渡します。

[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' );
3
Milo