使用WP_LIST_TABLE的自定义列表表格中的特定行样式

时间:2021-12-30 作者:Rajanish Singh

我正在构建一个自定义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类应用于行?

1 个回复
最合适的回答,由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标记作为包装。例如aspan 要素:

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];
    }
}

相关推荐

如何清理wp-content/plugins/wordpress-seo中不必要的文件?

我目前维护Wordpress网站7年。磁盘使用率最近已满,因此我需要定期检查自动备份并保存这些备份,然后将其从服务器中删除。当我检查时,插件文件夹中的wordpress seo文件夹(这是Yoast seo默认插件文件夹)占用了太多空间。据我所知,它充满了各种版本的插件文件。确切地说,它位于wordpress seo插件的js/dist文件夹中。它包含几种类型的小型javascript,每个名称的末尾都有某种序列或版本号,总容量约为250-300 MB。我可以清理这些文件吗?如果是,是否安全?如果我从以前