阻止前端主题将css注入wp-admin

时间:2015-07-25 作者:Steve

I\'ve created a custom child theme of parent theme Cordillera.

This is my child theme\'s header.php (<head>):

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta charset="<?php bloginfo( \'charset\' ); ?>" />
    <?php wp_head();?>
<?php
global $enable_home_page;
$banner = "";
$home_banner_type = cordillera_options_array("home_banner_type",1);
$enable_home_page = cordillera_options_array("enable_home_page");
 if( is_front_page() ){
      $class      = "homepage";
      $banner     = cordillera_get_banner($home_banner_type);
     } 
     else
     {
      $class      = "sitepage";
     }

?>
<link href=\'http://fonts.googleapis.com/css?family=Waiting+for+the+Sunrise\' rel=\'stylesheet\' type=\'text/css\'>
<link href=\'http://fonts.googleapis.com/css?family=Open+Sans\' rel=\'stylesheet\' type=\'text/css\'>
<?php if(!(is_front_page())) { ?>
<!-- non-front-page CSS -->
<style>
    html {
      background-color: transparent;
      background: url(\'<?php echo get_stylesheet_directory_uri(); ?>/images/bg-product.jpg\') no-repeat center center fixed;
      -webkit-background-size: cover;
      -moz-background-size: cover;
      -o-background-size: cover;
      background-size: cover;
    }
<!-- END non-front-page CSS -->
</style>
<?php } ?>
<?php if(is_page(6)) { ?>
<!-- shop page CSS -->
<style>
    .blog-main {
      background-color: transparent !important;
    }
</style>
<!-- shop page CSS -->
<?php } ?>
</head>

I haven\'t included a link to my child theme\'s style.css in this file, instead using:

add_action( \'wp_enqueue_scripts\', function() {
    wp_register_style( \'childstyle\', get_stylesheet_uri());
    wp_enqueue_style( \'childstyle\', get_stylesheet_uri());
});

in my child theme\'s functions.php.

However, when logged into Wordpress admin, and viewing WooCommerce pages, some of the admin tool bar links are being colored by my child theme\'s style.css.

enter image description here

How can I prevent this? Thanks.

2 个回复
最合适的回答,由SO网友:denis.stoyanov 整理而成

重新构造CSS文件并删除!important 您的.css 并使用适当的标记(类、ID等)。

e、 g。

a, .entry-summary a, .entry-content a {
  color: #06F !important;
  font-weight: 400;
}
从测试WS判断,该测试是通过site:在Google中使用Facebook个人资料中的URL进行搜索(脾气脾气)。

Edit 1: 虽然!important 规则有时很方便,通常会破坏结构,尤其是在没有进行适当和详细规划的情况下。

SO网友:Syed Priom

我想做的是申请!important 到wp admin native styles。但这将是昂贵的,因为我需要完全控制核心文件,并且在升级到新版本的wordpress时会丢失所有样式。

如果我不想弄乱本机wordpress代码,特别是主题,我会尝试为链接和主题与管理区域的所有冲突元素创建唯一的类。比如,如果我把我的整个主题<div id="viewport"> 然后在我的主题文件中执行#viewporta{color: yellow !important;} 我想这会有用的。

这就是我所能想到的,也许有更好的方法可以通过使用自定义过滤器来区分CSS文件的执行优先级。

结束

相关推荐