有没有办法让这种款式具有更高的优先级?

时间:2016-03-02 作者:bestprogrammerintheworld

我使用的主题选择添加/删除不同的内容,这取决于http标头识别的浏览器等。我对这个有意见,因为它不总是有效。该设计在页面上显示的内容与预期不同。只是有时候,所以很难弄清楚到底发生了什么。

在函数中。主主题(桥)的php添加了webkit样式表:

if($is_chrome || $is_safari) {
    wp_enqueue_style("webkit", QODE_ROOT . "/css/webkit_stylesheet.css");
}
但问题是,webkit css有时会在Firefox中应用(有时不会)。当它不被应用时,主页的设计在Firefox中就可以正常工作。

don\'t want to change the main themes 代码:

if($is_chrome || $is_safari) {
    //wp_enqueue_style("webkit", QODE_ROOT . "/css/webkit_stylesheet.css");
}
,所以我想我可以在儿童主题中这样做:

功能。php

wp_dequeue_style("webkit");
我还尝试从主主题函数中添加函数。php应用css并应用childs主题中使用的css,但运气不佳。

我还检查了样式是否应用于孩子的主题函数。php:

if (wp_style_is("webkit") === true) {
    echo \'WEBKIT is defined\';    
    wp_die();
}
else {
    echo \'WEBKIT is NOT defined\';
    wp_die();
}
而且我总是得到没有定义的get-WEBKIT。

Is there a way to deque the style with higher priority? 类似于som相当于!important 在css中。我希望你明白我的意思:)

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

您的问题在于检测浏览器。像PHP这样的服务器端语言无法知道哪个浏览器用于呈现页面/网站。这是所有客户端进程。

有人“聪明”发明了在PHP中检测浏览器和设备的方法,并声称它有效。是的,它确实有效,BUT 不总是这样。正如我所说的,服务器端语言无法检测浏览器或设备,以及您正在使用的条件(和马戏团小丑wp_is_mobile())依赖于客户端进程,而客户端进程永远不可靠,因为它可以在客户端进行更改和修改。

不幸的是,你被塞满了。你有一些东西在某些情况下会起作用,但在其他情况下会失败,对此你无能为力。你需要一直忍受到最后,因为我看不到服务器端语言检测浏览器或设备的任何可靠方法

编辑要完全删除样式表,需要取消注册并将其出列

add_action( \'wp_enqueue_scripts\', wpse_219467_remove_webkit, PHP_INT_MAX );
function wpse_219467_remove_webkit()
{
    wp_dequeue_style( \'webkit\' );
    wp_deregister_style( \'webkit\' );
}

相关推荐