“Elegant Grunge” WordPress theme

“Elegant Grunge” is an unwashed yet crisp WordPress theme inspired by It features:

  • Layouts options
  • Support for custom background and header
  • Widget-ready footer
  • Optional full-width page template that removes the sidebar


Get Elegant Grunge

If you like Elegant Grunge, please consider buying one of my products.

Version 1.1 has been updated to the version.

This version no longer contains automatic image framing, or a photoblog template, so if you wish to continue using these features, please use version 1.0.3.


  • Layout updates and fixes
  • Fixed deprecated function calls and PHP errors
  • Code cleanup to match WordPress theme style guide: spacing, syntax, comments, package description
  • Added author comment highlighting
  • Added support for empty post title and styles for all heading sizes
  • Fixed bugs with theme options menus
  • Simplified custom functions and removed unneeded theme options
  • Remove custom header image support and use default WP header image functionality instead
  • Added image.php template
  • Added RTL language support
  • Changed post timestamp to use the WordPress global date format
  • Remove unused template files
  • Implement WordPress 3.0 features: Custom Menu, comment_form()
  • Added default WP style support: body_class(), post_class(), comment_class() and remove unneeded definition for EG_BODY_CLASS
  • Removed unneeded function_exists() calls
  • Simplified image display: no frames or photoblog page
  • Nicer typography and updated grunge images for sticky posts, trackbacks, and new date format
  • Styles for sticky posts
  • Added newer/older single post navigation links
  • Better class attributes to avoid collision with WP default classes (author, post, date, etc)
  • Remove sidebar logic check in every template (once in sidebar.php instead)

Note: If you have problems with this theme, please post your question at the WordPress forums. Please don’t contact me directly, as I don’t have the resources to help you.

Language Packs

Many thanks to contributors!

Casual German/Deutsch – by Markus Bischof

Formal/polite German/Deutsch – by André Heil

Italian/Italiano – by Paolo Lucciola

French/Français – by Arnaud Ball

Romanian – by Adrian Nitescu

Arabic/العربية – by Mena

Finnish/Suomi – by Antti

Turkish/Türkçe – by Mehmet

Brazilian Portuguese – by Jandeilson S. Barbosa

Spanish/Español – by José Vergara

Norwegian/Norsk – by Vipblogg

Russian/русский язык – by Sergey aka Cepxuo

Czech – by Bengo

Lithuanian – by Valentinas Bakaitis

Belorussian – by Marcis G./Galina Miklosic

Polish – by Grzegorz ‘ixcesal’ Lasecki

Dutch – by Rene (WPwebshop)

Indonesian/Bahasa Indonesia – by Kelayang

Filipino – by Mikael Riec

Danish/Dansk – by Morten Elm

Latvian – by Johannes Rau

To use these language packs, you must download the WordPress language pack first, copy it into wp-content/languages, then edit wp-config.php and set the WPLANG value to the appropriate language abbreviation (eg ‘fr_FR’). Then unzip the Elegant Grunge language pack into the wp-content/themes/elegant-grunge folder, and you’re set.


WordPress Theme Elegant Grunge Template Addon for built-in WordPress GallerySebastian Graß

Paul Kaiser has written a great article on how to add navigation menus to older WordPress themes, using Elegant Grunge as an example.

, , , . Bookmark the permalink. Both comments and trackbacks are currently closed.


  1. Posted October 12, 2008 at 5:55 pm | Permalink

    Thanks Matt!

    The widget: Actually, the sidebar isn’t being deleted per se, it’s just that when you add a widget, it replaces the default set (this is standard operation).. If you want the archives, etc, you gotta add them as widgets too.

    The tag page is used for viewing the ‘photoblog’ tag – see it on my site: /tag/photoblog.So, for photoblog entries you add the ‘photoblog’ tag, and when you view the tag page, it’ll use that tag-photoblog template. If you want it to be a different tag, rename it to tag-(new-tag).php. Or, if you want to classify photoblog entries with categories instead, call it category-(category-name).php. If you want the whole site to just be a photoblog, you could replace index.php with photoblog-tag.php. Your call!

    Lemme know how it works for you, if at all.

  2. Posted October 13, 2008 at 5:21 am | Permalink

    Thank you for your reply, I have Downloaded the version with the date 2008-10-07..

    How could I update to the latest version without do any thing to the translation…or I’ll have to download and translate again

    Thank you, Mena

  3. Posted October 13, 2008 at 9:55 am | Permalink

    Hi Mena!

    Hmm, are you familiar with patch and diff? Those would probably work – grab the original version which you translated, run diff -u elegant-grunge-original elegant-grunge-translated > patch.diff, then get the new version, and from that directory, run patch -p 1 < ../patch.diff.

    If not, you may have to do it the manual way! Let me know if there’s anything I can do to make the process easier, though – like using _e() for example. I haven’t read up much on WP theme internationalisation, perhaps I should.

    Best of luck!

  4. Posted October 13, 2008 at 11:58 pm | Permalink

    I really like this theme! Thanks! It looks really good! I plan to use it on my site.

  5. Posted October 14, 2008 at 11:44 pm | Permalink

    I like your theme and decided to use it on one of my sites, but I got the preg_replace_callback() error listed above. When I tried your fix, it caused a different error so I tried downloading the latest functions.php and no luck. I’m stuck on this now:

    Parse error: parse error, unexpected ‘/’ in /home/content/a/i/k/aikoto/html/mem/wp-content/themes/mem/functions.php on line 58

    I’m guessing it has to do with the ?> within the string, but I’m not a regular expression user so I’m in the dark on this one.

  6. Posted October 15, 2008 at 2:26 am | Permalink

    Hi again, after i have translated the new version the blog is not displayed well in IE.. I don’t know why, but how to solve this ?

  7. Posted October 15, 2008 at 7:54 am | Permalink

    Hi Jeremy!

    Hmm… What version exactly are you using? I’m a bit confused because v0.3 and the latest unofficial build both have just whitespace on line 58! You could try breaking up that string around the ?>, as in …?’.’&gt…, see if that fixes things. What version of PHP are you running?

  8. Posted October 15, 2008 at 8:00 am | Permalink

    Hello Mena: Will, it looks more-or-less okay to me, apart from the ‘search’ button which doesn’t seem to be getting the style applied to it, and possibly the sidebar needing to be shifted to the right a little…and the footer’s RSS link needing to move to the right..And that fatal error in the footer about spa_default_options(). What’s the specific problem you mentioned?

  9. Posted October 15, 2008 at 8:19 am | Permalink

    The fatal error is from snap shot plug-in, and the problem that internet explorer display every thing in the page wrong, it’s missed up.. here is a screen shot

    I don’t know much about php and even HTML i just looked on the word press default them and it was already translated ….so i just look where i should change the words only nothing else…

    The theme is working well on the English version of the site

  10. Posted October 15, 2008 at 8:47 am | Permalink

    Wow, that is messed up. Maybe stick with the older version if it works for you? I have no theories at this point, apart from blaming IE.

  11. Posted October 15, 2008 at 8:56 am | Permalink

    well, ok…

    Thank you

  12. Posted October 15, 2008 at 7:08 pm | Permalink

    Hello Michael,

    Thank you for making possible to have this theme! You have done a great job. Those photoframes look really unique & creative.

    I truly like the grunge style, and this theme may be what I’ve been looking for. However, I would like add a bit myself to it: maybe a bigger header, bit more grunge here and there and maybe add some colors. Would it impossible to get hold of the PSD file?

    Anyways, thanks for the great theme. Keep on inspiring people!

    P.S. How can I change the sidebar widget titles to images (different font etc.)?

  13. Posted October 15, 2008 at 8:51 pm | Permalink

    Thanks Karri! I’m glad you like it! I’ve emailed you the PSD, I hope it’s useful to you.

    About making the sidebar widget titles images: piece o’ cake! You can do it all with css, pretty much. If you’re using sidebar widgets, you’ll notice that the widgets are surrounded by something like

    <li id="most-visited-posts" class="widget widget_wpcomstats_most_visited_posts"> ... </li>

    So, just add the widgets you want, view source and get their id/classes, and just style them

    So, for the example above, say

    #sidebar #most-visited-posts h2 {
        text-indent: 2000px; /* Hide text */
        display: block; /* Make width/height work, might not be necessary */
        background: url(/wp-content/title-images/most-visited-posts.png);
        width: 120px;
        height: 40px;

    Then just make your headings and put them in a directory like /wp-content/title-images (or just in the template directory).

    I suggest you copy all of the stuff you’ve added to style.css into another file, say, custom.css, so that if you decide to upgrade the theme, you can just copy it straight back in, without having to dig it out before upgrading (when I update, I just go to the command line and cat custom.css >> style.css. For the same reason, maybe put your modifications of the theme into another directory, perhaps, to make upgrading easier. Your call =)

  14. Posted October 15, 2008 at 10:49 pm | Permalink

    Awesome theme. Seriously, this is amazing.

  15. Posted October 16, 2008 at 6:53 am | Permalink

    Well, can you help me upgrade it :D, i know I’m asking much but i don’t know how to patch or just give me a link so i can know how to do that…

    by the way the site is displayed well in IE 7 the screen shot was from IE 8 beta…

    Any way i thank you very much for the help you gave me

  16. Posted October 17, 2008 at 2:55 am | Permalink

    Your theme looks great. Any chance you could modify it to have another column (even a plain one) on the right? Is it sacrilege to ask? :)

  17. Posted October 17, 2008 at 8:15 am | Permalink

    Nan: gasp Blasphemer! Actually, you’re the second person to mention adding an additional column – I’ve got it planned for an upcoming release, as an option you can turn on or off. Stay tuned =)

  18. Posted October 18, 2008 at 6:40 am | Permalink

    Hi There Mich Tyson;),

    Alright….first things first…I’m really impressed with this theme and have added it to my site;will soon get working on it though.Ok,there are soo many things I want to ask you…but let’s go a little slow.

    Firstly…I would like to know at the foot of the site…how have you added the Random photos?Which plug-in have you used? And how how you written the About Me text before the images.

    Secondly,When I go to Photography…I would like to know which plug-in do you use to create that sort of gallery.

    Thirdly,When I click Music…I just want to know from where i can get that sort of mini-player along with a playlist.

    Now,I can understand you are a brilliant coder…seeing your qualifications…I’m quite nothing.Yes,I’m a beginner.If you could please help me out here I’d be more than just glad.

    Cheers! Trevor

  19. Posted October 18, 2008 at 11:10 am | Permalink

    Hi Trevor,

    Glad you like it!

    The ‘Random photos’ widget plus the album under ‘Photography’ are both provided by the NextGEN Gallery and accompanying widget. Elegant Grunge also provides a similar widget for items tagged ‘photoblog’.

    The text is just a ‘Text’ widget inserted into the Footer area.

    The music player is XSPF web music player, both for the single-button players and the playlist player. I have some custom PHP code that builds the music page from files in a directory. I just made the code available as a WordPress plugin, among other things.

  20. Posted October 18, 2008 at 9:15 pm | Permalink

    Hi There Michael,

    Thanks for the reply.Alright I installed the NextGen Gallery but when I try to add a gallery…it doesn’t when I call up Manage galleries…there is no gallery that is created.I’m just asking if you’ve faced such a problem like this and if you could help me out.

    Moreover in the Photoblog widget,after having added it,how does it work? ie how do I add images or specify a destination?

    One more thing…are those songs yours?


  21. Posted October 18, 2008 at 9:41 pm | Permalink

    Hiya Trevor,

    I can’t say I’ve had any troubles with it, actually; it does make folders under wp-content/gallery, so make sure you have write permissions there. Try dropping a line to the developer; they will help you.

    The photoblog widget will display images from posts tagged ‘photoblog’ – so to add images, you just post them. See my photoblog tag to see how it works. If you want to proceed with that mechanism, but don’t want photos coming up as posts on the front page, there’s a way to use the query_posts template tag to exclude posts with the ‘photoblog’ tag. If you wanna do it, let me know and I’ll look it up for you, maybe even make it an option in the theme config.

    And yes, the songs are mine =)

  22. Posted October 18, 2008 at 11:17 pm | Permalink


    Alright….I got the thing working.just one more issue…are you using NextGen Gallery in your photoblog? cause I like the way your images are arranged…with a title & a description when I click on each picture. Now,under themes>>Elegant Grunge…there is an option to put a frame around all images…I would love to use this option….but if you check out my contact form…there are 2 images there…and when I check this option,the form gets distorted as the images are surrounded with the frame…I could give a small suggestion here:

    Keep the frame size applicable to images of an icon size like 10×10 or whatever.And an option as to choose which images to file under the photoblog.

    Ok…I got the photoblog to work for me….but the NextGen Gallery,the author still hasn’t returned to my query.Could I please ask you what were the directory changes that were made when you added this plugin.Thanks!

    Hope I’m not troublin’ ye! ;)


  23. Posted October 19, 2008 at 9:07 am | Permalink


    Are you referring to the way images pop up on click? That’s Lightbox; read through the Elegant Grunge documentation above, and view its settings page for more information.

    Image framing does take note of image sizes; if you look at some pages on this blog, you’ll see that some have large frames, some have small frames, and some are unframed – this is done according to image size. However, the images on your contact page do not have width/height attributes in their tags, so Elegant Grunge can’t figure out how large the images are. Three solutions here:

    • Open your contact page in the editor, scroll down to Elegant Grunge settings, and disable image framing for that page, or
    • Add width/height attributes to the images, or
    • Find out the classnames of the offending images and add them to the list of excluded classes in Elegant Grunge config (you wanna add captcha and capthca-reset)

    Choose which images to put in the photoblog by tagging posts as photoblog.. If you don’t want them in your photoblog, don’t tag them as photoblog! Easy!

    I made no changes to the gallery, it worked straight away, so I’m afraid I can’t help you there. If you’re desperate we could work out some consulting fees but I think you’ll figure it out – do a bit of googling around, and the author will reply soon enough.

  24. Trevor
    Posted October 19, 2008 at 9:54 pm | Permalink

    Jee Buddy…thanks a lot…I’ll have to look around for the contact form thing cause I’m using a plug-in there….regarding the photoblog thing,thanks a lot…really helping me…and it looks great!

    About NextGen….I’ll try and figure out something…PS:- How did you install….did you install it like this:


    or did you create a folder like:


    Cause I have a funny feeling that might be the problem as I follow the second one.First one gets quite messy!


  25. Posted October 20, 2008 at 12:23 am | Permalink

    Michael: I installed your version 4 and it’s working fine now. Thanks!

  26. Posted October 20, 2008 at 4:00 am | Permalink

    Frames are rendered incorrectly.

    What ho, Mike (not Iron Mike) Tyson; We are using your grunge theme at the site above. When we place an image in any orientation other than “left”, the upper left quadrant of the frame is broken on firefox. Also, if we add captions to the text, the image shifts and covers part of the text. However, if the images are placed “left” and have no caption, they render correctly in Firefox (in both Linux and Windows), but in Internet Explorer, the bottom of the frame is at the top, and the top and middle of the frame are at the middle and bottom.

    Please advise, thanks.

  27. Posted October 20, 2008 at 7:50 am | Permalink

    Hi Michael,

    Great theme. Congratulations. I’m downloaded the latest version and tried to use it on a new blog. When change to the the I got the following error:

    Parse error: syntax error, unexpected $end in d:\wordpress\wp-content\themes\elegant-grunge\functions.php on line 788

    I checked the code but everything seems to be ok. This wordpress instalation is running on Windows. Any idea about this?



  28. Posted October 20, 2008 at 9:06 am | Permalink

    Hi Vitor,

    Thanks! Sorry to hear about your error. I have no experience with running PHP under windows, but some googling reveals that sometimes there’s problems with line endings. So, try converting the line endings in functions.php from Unix (lf) to Windows (crlf) and see if that fixes it. There are a variety of tools out there to do it (eg. Notepad++)

  29. Trevor
    Posted October 20, 2008 at 8:55 pm | Permalink

    Lollz…dude…I aint a programmer! :P Anyways…I’m waiting for Alex’s reply himself in the WP Support forums.One more thing now….You have a new version come out? Version 4 I hear…will I need to update mine?

    And yeah,if your at home or something…I mean like how do you record your songs…in a studio or you got something at home…


One Trackback

  1. […] Elegant Grunge WordPress Theme is an unwashed yet crisp WordPress theme. It has Photoblog’ widget that display latest/random thumbnails from your photoblog. […]