HOWTO: Add Print Stylesheet to WordPress
I wanted to print an article from my web site, but the printing was ugly. I had previously tried to fix up my printing by adding some @media print stuff to my stylesheet, but I found it wasn’t working. Since I have free time, I spent a bunch of it thrashing my head against the wall trying to figure out what’s up researching the correct approach. Finally, I found a wordpress.org article: “Styling for Print”.
To specify a “print” stylesheet for WordPress:
Step One: Edit your theme’s header.php and change this:
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
To this:
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen, print" />
This is actually the one part of the puzzle I was missing. What it does is tell the User Agent to apply the stylesheet when displaying on screen, and also when printing.
Step Two: Add a @media print section to your stylesheet.
For me, this means setting display: none; on structural elements that I don’t want to print. I came up with:
@media print {
DIV#sidebar { display: none; }
.comments { display: none; }
.credit { display: none; }
.noPrint { display: none; }
}
That turns off the sidebar, the comments, the “credit” footer at the very bottom of the screen, and anything marked by class="noPrint".
Step Three: Add class="noPrint" where needed.
<p style="noPrint">This paragraph would be displayed on a screen, but not in a printout.</p>
This is how I turned off the menus within the top header. I kept the top-most banner intact because my web site has the same name as the URL, which is nice to have in case someone were to stumble across a printout one day and track me down online.
You may have to wrap some things in DIV or SPAN enclosures. The trickiest thing for me was to disable Google AdSense. Adding class="noPrint" to the SCRIPT tags didn’t work: I had mark the parent element.
Step Four: Test!
Visit the web browsers you have access to and “Print Preview” on a variety of pages: some pages have elements that others don’t, and some web browsers are goofier than others. You’ll want to go through and tweak things . . .
That is all there is to it, really.
Response
Norwich print
Thats incredibly useful for our company blog. Many thanks for the info :)
Comment
Danny Howard is 100% responsible for the content on this site, except some of it is stolen. (Sorry about that.)
Intellectual property on this web site is reserved for re-use under the terms of the Creative Commons license. Derivative works may be created for non-commercial purposes, with proper attribution.
You can contact me via e-mail: dannyman@toldme.com
Most of http://dannyman.toldme.com/ is powered by WordPress.
If you're hip to RSS and whatnot, you can subscribe to this site.