• I’d like to have custom backgrounds display behind the category headers for some of the categories.

    The header is the same for all of them.

    So I’d like to somehow send a background image to those categories that I have background-images for.

    What is the best way in terms of fast website?

    Do I create a category page for EVERY category I want a background image on? or do I add a string of image links somewhere and it can find the correct image for the category?

    Thanks

Viewing 10 replies - 1 through 10 (of 10 total)
  • If you look at most WordPress themes there’s usually a ton of classes you can use to style things on a per-page, per-post, per-category, per-tag, even per-post-type level. For instance in the Twenty Twelve theme, if you looked at a post with the category of “special” you would see the class “category-special” applied to the body tag. You could then use that in your CSS to style all posts with that category with a certain background image. You would need to create the categories first though (and have posts assigned to those categories) before you could really style them though. Because if the category doesn’t exist and if there are no posts in that category, no one would see it!

    Just an additional note on custom CSS.

    Let’s say you do use a body class to edit the body element for a specific category.

    You can also fully and completely then customized all the other elements within body.

    Let’s say you have a right sidebar and in this example it has a class applied to it by your theme of ‘right-sidebar’.

    You could change the padding, margin, and background color with this:

    .category-special .right-sidebar {
    background: orange;
    padding: 0 10px;
    margin: 0 auto;
    }

    And to take this a step further, let’s assume you theme’s right sidebar has a text widget and it’s class is ‘text-widget-1’, you could change the font color, the link color using:

    .category-special .right-sidebar .text-widget-1 {
    color: #ccc;
    }
    .category-special .right-sidebar .text-widget-1 a {
    color: red;
    }
    .category-special .right-sidebar .text-widget-1 a:hover {
    color: blue;
    }

    So it’s possible to edit the look of pretty much everything!

    To discover what CSS is output by your theme, use a web inspection tool such as Firebug: https://getfirebug.com/ , Chrome Inspect Element: https://developers.google.com/chrome-developer-tools/ or Internet Explorer 9+ F12 Dev. Tools: https://msdn.microsoft.com/en-us/library/dd565627(v=vs.85).aspx#csstool

    There are others.

    When editing CSS, use a Child Theme
    https://codex.www.ads-software.com/Child_Themes
    Custom CSS Plugin, or Theme provided custom CSS option.
    Edits to parent themes are lost on theme update.

    Learn CSS: https://www.w3schools.com/css/

    Thread Starter JHaleavy

    (@jhaleavy)

    Hi, thanks guys. In this case I’m building a Theme myself.

    What bemdesign wrote about applying to style all posts within a category with css is very interesting.

    In this case, I have categories and child categories made (several levels deep), and they have posts. All I would really like to do is add a special image to the header on the category_page for, for example, Cell Phones (child category of Tech). Or, if I find an image, add an image to the category_page for 3D Printing. But most categories don’t have images yet, so they would just display without any image in the header space. I’d like to do this keeping in mind initial page load speed (so I want to put it in after the onload event).

    It would also be interesting to add the same image to single-posts within the category, though that seems a second piece of code.

    Thanks

    if you integrate body_class() and post_class() in your theme, this should give you possibly enough CSS classes to apply category specific formatting.

    you could also consider plugins to add category icons – https://www.ads-software.com/plugins/search.php?q=category+icon

    Day Blakely Donaldson

    (@day-blakely-donaldson)

    I’ll look into those two classes right now, thanks Alchymyth.

    I am trying to avoid plugins because, as I understand, WordPress loads them all before the page.

    By the way, is there any way to delay that? Can I somehow call the plugins later in the load event (ie after the onload or something)? And do all plugins load before a page, or are some plugins Backend only (don’t effect the page load at all)?

    If the plugin affects how the page looks or the content in it, it needs to load prior. If the plugin adds functionality that does not affect the display of the page, then it can load in the footer (and not the header)…how any plugin can or cannot do so needs to be discussed with each plugin dev.

    Thread Starter JHaleavy

    (@jhaleavy)

    Thanks for that explanation.

    That might mean then that I can change the code of the plugin to load where I want it to load?

    Could you please point me in the direction where that exists for plugins usually and what the code looks like?

    I understand plugins that affect display in many cases need to be loaded first, but we are coding up our own Theme, and don’t need any but maybe one or two of our plugins to load there.

    The answer is still ‘it depends on the plugin’. They vary so much it would be impossible to list one answer to this. Plugins use PHP, HMTL, Javacript, Jquery, Libraries, many and differing combinations of code…

    Thread Starter JHaleavy

    (@jhaleavy)

    Even that is very good to know, because it tells us what we DON’t need to try to do. Thanks!

    Thread Starter JHaleavy

    (@jhaleavy)

    Hi, just a follow up on this conversation. Something I’ve been thinking about a since reading your solutions.

    All these solutions sound great, btw, thanks. I think I will use the css options mentioned above.

    I wonder about time to load with these options though. I guess I could just use a special css file for category pages, to just add things to those pages.

    For the single post view though, I would like to display some custom styling based on the lowest category (most child) checked.

    What amount of time would it take (page load time) to add css to style the look of a few hundred (eventually — not now) categories? For example, to add a special background to single posts based on their most child category…

    How could I tell my css to recognize a page based on its lowest (most-child) category, and then have it use the right style?

    Thanks, JH

Viewing 10 replies - 1 through 10 (of 10 total)
  • The topic ‘What is the best way to customize Category pages?’ is closed to new replies.