2

I have a custom theme with just a name in its style.css. I've activated it in admin which shows it just fine.

In the index.php just <?php wp_head(); ?> and it doesn't output the line that is supposed to include my main stylesheet style.css:

<link rel='stylesheet' id='my-theme'  href='~/wp-content/themes/my-theme/style.css' type='text/css' media='all' />

It prints out all the other stuff but that line! What would make it not print out my default stylesheet inclusion line?


style.css :

/*
Theme Name: my-theme
*/

index.php :

hello world
<?php wp_head(); ?>

output:

hello world
<meta name='robots' content='noindex,follow' />
<link rel='stylesheet' id='open-sans-css'  href='//fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&#038;subset=latin%2Clatin-ext&#038;ver=4.0' type='text/css' media='all' />
<link rel='stylesheet' id='dashicons-css'  href='~/wp-includes/css/dashicons.min.css?ver=4.0' type='text/css' media='all' />
<link rel='stylesheet' id='admin-bar-css'  href='~/wp-includes/css/admin-bar.min.css?ver=4.0' type='text/css' media='all' />
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="~/xmlrpc.php?rsd" />
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="~/wp-includes/wlwmanifest.xml" /> 
<meta name="generator" content="WordPress 4.0" />
<style type="text/css" media="print">#wpadminbar { display:none; }</style>
<style type="text/css" media="screen">
    html { margin-top: 32px !important; }
    * html body { margin-top: 32px !important; }
    @media screen and ( max-width: 782px ) {
        html { margin-top: 46px !important; }
        * html body { margin-top: 46px !important; }
    }
</style>
2
  • You should not add these in index.php but these must be already in header.php and <?php wp_head(); ?> must be first line in index.php or all other theme files.
    – Robert hue
    Commented Sep 26, 2014 at 13:20
  • try adding <?php wp_head(); ?> in your header.php <head> section.
    – Mark P
    Commented Oct 3, 2019 at 22:48

2 Answers 2

5

Actually you shouldn't add JS and CSS files to your header.php, but make use of the functions wp_enqueue_script() and wp_enqueue_style() to add them there.

Example taken from the codex page:

/**
 * Proper way to enqueue scripts and styles
 */
function theme_name_scripts() {
    wp_enqueue_style( 'style-name', get_stylesheet_uri() );
    wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/example.js', array(), '1.0.0', true );
}

add_action( 'wp_enqueue_scripts', 'theme_name_scripts' );
5
  • I think his theme must be including CSS files that way but I think he is more concerned about style.css is being empty and not being included in website.
    – Robert hue
    Commented Sep 26, 2014 at 13:44
  • You might be right. But: For one the style.css shouldn't be empty anyway, it should at least contain the header. Secondly it doesn't need to be included into the head, it can of course, but does need to be present in the themes directory. Last but not least, it's just always preferable to do it the way I suggested. I just added it so others coming here can know about that. @Roberthue Commented Sep 26, 2014 at 13:54
  • Btw inserting the style.css via wp_enqueue_style does normally work just fine, even if there is only the header in it - so there must be another problem why it didn't work. @Roberthue Aside from that, I answered your question some days ago, did you take a look? Commented Sep 26, 2014 at 14:15
  • sorry I did not notice your answer. I will check it now. Thanks :)
    – Robert hue
    Commented Sep 26, 2014 at 14:31
  • No problem and no hurry, I just realized it was you, so I thought I ask :) @Roberthue Commented Sep 26, 2014 at 14:35
-1

You should add your .js and .css files, like this. in your header.php

<link rel='stylesheet' id='my-theme' href='<?php echo get_template_directory_uri(); ?>/style.css' type='text/css' media='all' />

Did you notice <?php echo get_template_directory_uri(); ?> in above code that you will need to use. It defines URL to theme folder on your website. You can add all other files links similarly.

Although it's not necessary to include /theme/style.css in your website unless it has any styles for website to use. I think your theme use this style.css file only for information/define theme variable purposes.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.