4

I have tried is_front_page() but I believe that is the php way of doing it. Perhaps I'm not calling it right because, of course, I'm not getting a response. Maybe I'm just short of my detailed Js ways of accessing the Wordpress classes.

What I'm trying to do is simple. If I am on the front page or home page add this class if I'm not add this other class. Very simple it's just not working. I have even tried a pseudo span tag and add the class to that and it doesn't work.

4
  • Have you tried is_home instead - WordPress handles home pages comprised of latest posts vs. static page differently. Also, there are already classes automatically added for the home page via WordPress, so maybe you do not need any more classes than that?
    – physalis
    Mar 14, 2017 at 10:49
  • Well that may work but what I think I'm trying to do is access a php fiction via jQuery which is the major conflict (I think)
    – SunRhythms
    Mar 14, 2017 at 10:59
  • Well, honestly, I don’t know what PHP fiction is, but you could possibly use the has_class() function of jQuery to target the home page specifically? Or, if you want to have a script running exclusively on the home page, you could enqueue the script via PHP with the is_home()/is_front_page() condition.
    – physalis
    Mar 14, 2017 at 11:10
  • cp. api.jquery.com/hasclass
    – physalis
    Mar 14, 2017 at 11:17

3 Answers 3

6

I just posted an answer to another question about how to do it.

In your case, assuming you used body_class() in your theme, your home page should have a <body> with class home to it.

So in your JS, you can:

if( $('body.home').length ){
  // Do stuff
}
4

Using jQuery:

jQuery(document).ready(function($){
    if ( $('body').hasClass('home')) {
        $('.menu').addClass('absolute');
    } else {
        $('.menu').addClass('fixed');
    }
});
4
  • Get by class name isn't always supported and I have had no luck with it ever.
    – SunRhythms
    Mar 14, 2017 at 12:09
  • Check the updated answer using jQuery. Mar 14, 2017 at 12:22
  • Cool answer but isn't has class already kind of like a conditional within itself. Do you need the if? I've seen it written without it ijs. When writing jquery to Wordpress you have to change the format. But thnx. It leads me somewhere I will try to write something and hopefully it works. Btw, this is all to fit in an already working and structured jquery document for a plugin that I'm just using a minor condition on because my homepage has a full page background rotator that I need the my header to be on top of in absolute. It only happens a the front page.
    – SunRhythms
    Mar 14, 2017 at 12:44
  • @SunRhythms As you can see from the docs, hasClass method returns a Boolean, and so you use the IF statement to add a class on True, ELSE a different class on False. api.jquery.com/hasclass Mar 14, 2017 at 13:32
0

You can use page id class. If you add page-id class in your java script file maybe solve your problem.

enter image description here

3
  • Yes I know of the page class. What should I use a bool so if page Id ==== home then such and such? The CSS address is very long even for the area or div which is just the headerwrapper
    – SunRhythms
    Mar 14, 2017 at 10:54
  • You can use as like if( $('body.page-id-6').length ){ // Do stuff }
    – ferdouswp
    Mar 15, 2017 at 6:18
  • The checked answer does the trick... its basically the same. thanks
    – SunRhythms
    Mar 17, 2017 at 2:51

Your Answer

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

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