cdbt_shortcode_custom_columns

(CDBT 2.0.0)

cdbt_shortcode_custom_columnsショートコードで一覧表示されるテーブルの列についての指定をフィルター

Description

array cdbt_shortcode_custom_columns ( array $columns [, string $shortcode_name, string $table ] )
ショートコードで一覧表示されるテーブルの列についての指定をフィルターする。このフィルターフックを利用することで、[cdbt-view][cdbt-edit]で出力されるテーブルの列表示をカスタマイズできます。

Parameters

columns
各カラム別の列出力制御用の設定データの配列。

カラム出力制御設定データ配列の要素構成は下記のようになっています。
array (
  [0] => array(
    ["label"] => string, // 列インデックス(列の先頭行)のラベル名
    ["property"] => string, // 列に対応するカラム名
    ["sortable"] => bool, // ソート可能な列かどうか
    ["sortDirection"] => string, // 初期ソート順(`ASC`か`DESC`のどちらか)
    ["dataNumric"] => bool, // 数値が格納される列かどうか
    ["truncateStrings"] => int, // 文字データを切り捨てる際の出力文字数(`0`の場合は切り捨て処理無効)
    ["className"] => string, // 列に追加するクラス名
    ["customColumnRenderer"] => string, // 列の値を加工出力する際のHTMLやJavaScript
  ), 
  [1] => array( // 次の列
  ), 
  ...
)
customColumnRendererではJavaScriptを使いカラム値を参照できる。カラム値のプレースホルダはrowData.カラム名となる。
truncateStringsの設定はバージョン2.0.10から追加されました。
shortcode_name
フィルター後にレンダリングされるショートコード名を参照できます。
table
ショートコードが処理するテーブル名を参照できます。

History

バージョン 内容
2.0.0 新規追加
2.0.10 カラム出力制御設定データ配列に「truncateStrings」を追加

Example

  1. [[cdbt-view table=”prefix_table”]]にて表示されるlinkカラムの値(<a>タグ付きリンク文字列)をHTMLとして出力する。
<?php
function my_shortcode_custom_columns( $columns, $shortcode_name, $table ){
  if ( 'cdbt-view' === $shortcode_name && 'prefix_table' === $table ) {
    foreach ( $columns as $_i => $_column ) {
      if ( 'link' === $_column['property'] ) {
        $columns[$_i]['customColumnRenderer'] = '$("<div/>").html(_.unescape(rowData.link)).text()';
      }
    }
  }
  return $columns;
}
add_filter( 'cdbt_shortcode_custom_columns', 'my_shortcode_custom_columns', 10, 3 );

Reference

Related Methods

Related Hooks