无法更改header.php中的样式表

时间:2014-10-25 05:47:21

标签: css wordpress customization stylesheet

很抱歉还在问这个问题,这是在尝试了以前的答案之后。在functions.php中添加样式表切换器函数没有任何效果,因为wp_head()仍然继续应用默认样式表(style.css)。

添加:

add_action( 'wp_enqueue_scripts', 'customstyles' );

function customstyles() { echo "hello world";
 if ( is_page('306') ) {
            wp_enqueue_style( '306page', get_stylesheet_uri()); //page-specific css for unique page
           }
       else {wp_enqueue_style( 'styles', get_stylesheet_uri() ); } //default stylesheet

}

在主题的functions.php中,然后从header.php调用<?php customstyles(); ?>无效,默认的style.css仍然会应用于所有页面。

尝试从header.php中删除wp_head()并仅保留自定义函数,但之后没有应用样式表,这进一步证明了wp_head()正在处理链接的css。

那么如何自定义wp_head()以便它不会覆盖通过functions.php或其他地方的代码添加的样式表?为什么在首先忽略functions.php中的样式表代码?在customstyles()中使用echo'hello world'进行测试时,在页面上输出了hello world,但忽略了函数的样式表代码。 WP_DEBUG也设置为true并且没有错误。

编辑:

这是head部分中的wordpress代码,加上自定义函数调用:

<head profile="http://gmpg.org/xfn/11">

<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />

    <?php if (is_search()) { ?>
       <meta name="robots" content="noindex, nofollow" /> 
    <?php } ?>

    <title>
           <?php
              if (function_exists('is_tag') && is_tag()) {
                 single_tag_title("Tag Archive for &quot;"); echo '&quot; - '; }
              elseif (is_archive()) {
                 wp_title(''); echo ' Archive - '; }
              elseif (is_search()) {
                 echo 'Search for &quot;'.wp_specialchars($s).'&quot; - '; }
              elseif (!(is_404()) && (is_single()) || (is_page())) {
                 wp_title(''); echo ' - '; }
              elseif (is_404()) {
                 echo 'Not Found - '; }
              if (is_home()) {
                 bloginfo('name'); echo ' - '; bloginfo('description'); }
              else {
                  bloginfo('name'); }
              if ($paged>1) {
                 echo ' - page '. $paged; }
           ?>
    </title>

    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />

    <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />

    <?php customstyles(); ?>     

    <?php wp_head(); ?> 

默认样式表实际上适用于通用页面。它只是不在页面'306'上应用自定义样式表。但我已经验证了样式表名称在wp_register_style('thisIsTheCustomStyleThatWontApplyButIsSpelledRightAndIsInTheSameDirectoryAsTheDefaultStylesheet',get_template_directory_uri())方法中是正确的。在get_template_directory_uri()中添加了“/”,但没有解决它。

1 个答案:

答案 0 :(得分:0)

function customstyles()
{
    if ( is_page( '306' ) ) {

        //Register and enqueue the stylesheet for 306 page.
        wp_register_style( '306page', get_template_directory_uri() . '/css/306.css' );  
        wp_enqueue_style( '306page' );

    } else {

        //Register and enqueue the default stylesheet.    
        wp_register_style( 'styles', get_stylesheet_uri() );
        wp_enqueue_style( 'styles' );  

    }   
}
add_action( 'wp_enqueue_scripts', 'customstyles' );

以上代码(未经测试)应该有所帮助。