我正在构建一个自定义WordPress插件,其中我为自定义数据库表中的实体创建了一个自定义列表表,扩展了WP\\U list\\U table类。
一切正常,但我想根据DB返回的行的特定列的值来设置每一行的样式。
每行的列的迭代在column\\u default()函数中进行:
/**
* Render a column when no column specific method exists.
*
* @param array $item
* @param string $column_name
*
* @return mixed
*/
public function column_default( $item, $column_name ) {
switch ( $column_name ) {
case \'id\':
return $item[$column_name];
default:
return $item[$column_name];
}
}
例如:
如果列表上打印的当前项目的viw\\U状态列等于1($item[\'viw_status \'] == 1)
, 当前项目的行必须具有绿色背景色,否则为灰色。
是否有任何方法可以根据行的列值将自定义css类应用于行?
最合适的回答,由SO网友:hbit 整理而成
这取决于您想在哪里应用自定义css类。
如果要将自定义类添加到<tr>
元素,我建议覆盖该函数single_row
像这样:
public function single_row( $item ) {
$cssClass = ($item[\'view_status \'] == 1) ? \'make-it-green\' : \'make-it-grey\';
echo \'<tr class="\'.$cssClass.\'">\';
$this->single_row_columns( $item );
echo \'</tr>\';
}
表格单元格的CSS类使用
column_{column name}
如您所概述的功能
column_default
并在单元格中放置一个HTML标记作为包装。例如a
span
要素:
public function column_default( $item, $column_name ) {
$cssClass = ($item[\'view_status \'] == 1) ? \'make-it-green\' : \'make-it-grey\';
switch ( $column_name ) {
case \'id\':
return \'<span class="\'.$cssClass.\'">\'.$item[$column_name].\'</span>\';
default:
return $item[$column_name];
}
}