在css样式的body标记中使用wp_head

时间:2015-09-21 作者:pulla

我正在尝试将css代码添加到head标记中。css样式来自短代码。来自快捷码和标题颜色/字体大小的标题文本。。等等。这就是一个例子。

<html>
<head>
<?php wp_head(); ?>
.................. (some style, js) .................. 
/* I want to put all of css styles into head tag from into body tags */
</head>
<body>

<?php

//shortcode css from user custom option

add_action( \'wp_head\', \'iulia_example\' );

function iulia_example() { 

echo \'<style type="text/css">
   .sc_title {color:#fff; font-weight:600;}
 </style>\';
} 
?>
  <!-- shortcode -->
  <div class="sc_wrap">
   <h1 class="sc_title">Hello This is the title</h1>
  </div>
</body>
</html>
我想使用wp\\u head hook在head标记中放置css样式。但是它不起作用。有没有其他方法可以在头部添加css代码?wp\\u head不在“body tag”中工作,它从shortcode中获取自定义css变量,它在body中。

非常感谢。

2 个回复
SO网友:Alessandro Benoit

它不起作用,因为您在实际操作触发后调用add\\u action。如果将操作声明移到wp\\u head()之前,它将起作用:

<html>
     <head>
     <?php
     add_action( \'wp_head\', function () { 
          echo \'<style type="text/css">.sc_title {color:#fff; font-weight:600;}</style>\';
     });
     ?>
     <?php wp_head(); ?>
没有简单的方法可以从body标记向头部添加一些代码,因为稍后将对这些代码进行评估。如果你真的需要这样做,你可以output buffering (首先评估主体模板并将其缓冲)但我不明白为什么要这样做。

In reply to the latests comments:

如果我理解正确的话,那么您想要实现的是在内容中添加一个短代码时在头部添加一些css,对吗?在这种情况下,您可以在标题中为帖子的内容添加一个检查。如果它与给定的短代码匹配,则输出样式。您可以在函数中添加以下内容。php,但这是一种黑客行为:

add_action(\'wp_head\', function () {
    global $post;
    if ($post) {
        setup_postdata($post);
        $content = get_the_content();
        preg_match(\'/\\[my_shortcode\\]/\', $content, $matches);
        if ($matches) {
            echo \'<style>.some_style { font-weight:800; }</style>\';
        }
    }
});

SO网友:Ahmar Ali

在CSS主题中创建一个新文件夹。将自定义样式放在单独的文件中,并将其保存在css文件夹中。假设您将文件命名为custom。css

下面是如何添加它的。在里面Functions.php:

wp_enqueue_style( \'custom-css\', get_template_directory_uri() . \'/css/custom.css\', null, null, \'all\'); 
艾哈迈尔

相关推荐