在管理员CSS之前加载自定义CSS

时间:2018-02-20 作者:fightstarr20

我试图在我的WordPress仪表板中使用jQuery Datatables插件,但原生WordPress admin CSS样式覆盖了Datatables CSS,我这样调用它们。。。

add_action(\'admin_enqueue_scripts\', \'admin_scripts\');
function admin_scripts() {
    wp_enqueue_script(\'datatables\', \'//cdn.datatables.net/v/bs4/dt-1.10.16/datatables.min.js\', array(\'jquery\'),\'1.21\', true );
    wp_enqueue_style(\'datatables-css\', \'//cdn.datatables.net/v/bs4/dt-1.10.16/datatables.min.css\', 99);
}
有没有办法更改优先级,使其首先加载datatables CSS?

2 个回复
SO网友:Cedon

默认情况下,它们应该已经在核心管理样式之后加载。我怀疑CSS甚至没有被加载,因为您的wp_enqueue_style() 呼叫其参数与wp_enqueue_script(). 你在哪里99 是实际定义依赖项的位置。WordPress正在寻找99 要加载,找不到它,并跳过排队。

因此,我将重写如下:

 wp_enqueue_style( \'datatables-css\', \'//cdn.datatables.net/v/bs4/dt-1.10.16/datatables.min.css\', \'datatables\' );
这样做的目的是加载样式表,但前提是加载JavaScript文件。

SO网友:Peter HvD

您不需要这样做,因为这都是关于CSS特定性的。您需要做的是将datatable包装在一个唯一的div中,然后使用该div专门针对CSS中的元素。

例如(顺便说一句,我不知道CSS,所以这只是一个一般的例子)

将表格元素包装在<div class="myClass">

使用浏览器中的检查器可以准确地找出要覆盖的样式所使用的CSS行。

如果元素的CSS为table.dataTable tr.dataTr td.dataTd 然后,如果向其中添加包装器div,它应该覆盖它,因为它更具体,即:.myClass table.dataTable tr.dataTr td.dataTd

您可能需要进行一点实验,直到获得完全正确的组合来覆盖特异性。我通常发现一个包装器元素就足够了,但有时我发现向(例如)table元素添加一个特定的类会有所帮助(如果可以的话),因此可能是:table.dataTable.myTableClass tr.dataTr td.dataTd

希望有帮助

结束

相关推荐

自定义菜单|设置无样式/SCSS代码格式

我正在尝试制作一个插件,该插件将在主题的自定义菜单中插入一个选项,允许您编辑SCS和更少的内容。我已经创建了字段并让它们工作,但我无法在编辑器框上使用颜色格式。在查看WP源代码后,我发现:https://github.com/WordPress/WordPress/blob/master/wp-includes/customize/class-wp-customize-code-editor-control.php因此,我构建了一个脚本,根据源代码读取的内容格式化所有内容。这仍然不是框的样式。这是我的代码