34
votes

Please could anyone help me with this problem? The wordpress admin bar is not displaying on the front-end (public visible pages) of my website. It shows when I'm logged in at the backend i.e Dashboard though. User settings are ok (set to show admin bar when viewing the site). I have tried deactivating (then, re-activating ) installed plugins, still no show.

Just a background note: I recently transferred the site to my webhost (I was developing locally and everything worked and is still working). And I have a custom folder for wordpress. I was wondering if the problem has to do with this.

Please help I have searched everywhere but seems everyone is looking to hide the admin panel instead.

Thanks in advance

17
Can you see the admin bar in the source code when viewing the site? (View the page source and look for a div with the id wpadminbar.)Matt Gibson
I have the same problem. Do you also have wordpress installed in a subfolder? So your Wordpress address in settings is e.g. yourdomain.com/wp and the site address is yourdomain.com?Niko Nyman

17 Answers

93
votes

Check that your theme includes a call to the function wp_footer() at some point, usually at the very bottom of footer.php. That generates the code required for the admin bar to show.

21
votes

add this to the end of your footer.php in your theme folder:

<?php wp_footer(); ?>

problem solved :-)

9
votes

Most of the time the wp_footer() call is right where it should be so if you still can't see the admin bar then try the following:

  1. log out of the backend

  2. navigate to the front-end

  3. clear your browser cache

  4. log back in using the absolute url i.e. yourwebsite.co.uk/wp-admin

    and then see if it comes up - worked for me.

Also make sure the "Show Toolbar when viewing site" box is checked in your user profile page or whatever you try ain't gonna work my friend!.

6
votes

I know this is an old question, but another option - If you purchased (use) a pre-made theme make sure that theme does not remove the toolbar in its code.

2
votes

Does it 'know' that you are logged in ? when in front end ? ie: meta widget shows 'logout' instead of login. if not Did you by any chance play around with the cookie paths?

I got myself confused because I was logged in at backend, but not front end. This was because I'd being playing with the cookie path and forgot to uncomment what I'd done.

2
votes

First, double checked all of the other items mentioned here (wp_footer(), etc).

Three more things to check:

  • make sure header.php has <body <?php body_class(); ?>> not just <body>
  • try disabling plugins one by one if you're still having trouble. (For me, the Simplest Gallery 2.7 with WP 3.7.1 caused a conflict that made the admin bar disappear)
  • look for function remove_admin_bar() { return false; } in the theme's functions.php - change it to return true.
1
votes

Just add in your template <?php wp_footer(); ?> before </body> and <?php wp_head(); ?> before </head>

1
votes

For me the issue was that I was using http://mydomain.com/wp in the WordPress address but http://www.mydomain.com for the site address. We had added the www to the WordPress address so that GoogleAnalytics would work and that's when the Admin Bar broke.

Adding www to the WordPress address fixed the issue.

1
votes

To clarify after a lot of searching for a solution, similar to MattKnowles solution but more specific: Make sure that in settings > WordPress Address (URL) and settings > Site address (URL) that if one has www then the other also does and the other way round. Otherwise it seems while you are browsing the site it is a different domain to the admin area and the admin bar does not show.

1
votes

Make sure site addresses are the same! I had one set at http://www.example.com and the other (WordPress) address set to http://example.com or visa versa.

I had them set this way because I though it was needed for the site to show up when you type the url without the www.

Now that both addresses are the same (with the www) my admin bar works, I stay logged in, I can comment, see preview or draft content, cross-site authenticate and logout, wow!

an entire year of wondering why WP just never worked right across over 30 websites!

Going to change addresses to the same "www" address in the rest of my 30 sites now and enjoy error-free WordPress for the first time ever...it's a great day!

Remember to remove any admin bar code you may have added in your theme's function.php file or in your styles.CSS

Thanks to all who help us here!

0
votes
wp_footer() , 

add this function to footer.php

0
votes

My #wpadminbar had a z-index: 99999;

In an act of myopia I made a sticky header that was in conflict with the Admin bar's stickiness. I had a z-index greater than the admin, making it rest behind the visible div.

I made my own sticky less powerful.

0
votes

Here's a solution that I found. Need to have <? wp_head()?> and <? wp_footer(); ?>.

More info: http://blog.frontendfactory.com/how-to-add-wordpress-toolbar-to-your-custom-theme/

0
votes

Still working on this, but there is a conflict with Woocommerce. if deactivated, toolbar is there. Active, no toolbar. More info here.

0
votes

I had a sitiation when the admin dashboard was opened in one Chrome tab, but I could not make front-end part opened in the other tab to enter the admin state and show the admin bar.

The front-end always opened as if I had not logged in as an admin in the other tab.

The issue was that I had the site opened in yet another Chrome window (not tab) as not-logged-in visitor.

As soon as I closed all the tabs and all the sessions and reopened the single Chrome window with two tabs (admin / front end) the admin bar appeared in the front end.

0
votes

Beware of unclosed HTML tags above <?php wp_footer(); ?>. Unclosed tags in the source will have closing tags generated by the browser and can suck in the WordPress admin bar HTML.

...
    <div class="hidden-by-css">
      <span> You can't see this</span>

    <?php wp_footer(); ?>
  </body>
</html>

That will cause the HTML generated for the admin bar to get sucked into the .hidden-by-css DIV and your admin bar won't show up.

So make sure you close all your tags. :)

0
votes

I wanna leave my solution since I tried literally every possible solution on the internet. The website has LiteSpeed and is behind a reverse proxy from Deflect.ca similar to cloudflare, it blocks and caches as well.

The problem is the default cache from Deflect is set on 10 minutes and that caused the problem. Setting it with lower settings and removing all admin caching from LiteCache solved everything.