Usually, wp_logout_url()
is used to make a Log Out link. If you’re also passing get_permalink()
as a parameter in order to stay on the same page after logging out, you may have something that looks like this:
<a href="<?php echo wp_logout_url( get_permalink() ); ?>">Logout</a>
But that doesn’t work to stay on the same page on category pages, tag pages, other taxonomy and/or archives pages, or on the blog page. To fix that, instead of using just get_permalink()
, use this:
// Get permalink on any page if ( is_tax() ) { $permalink = get_term_link( get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); } elseif ( is_post_type_archive() ) { $permalink = get_post_type_archive_link( get_query_var('post_type') ); } elseif ( is_home() ) { $permalink = get_permalink( get_option( 'page_for_posts' ) ); } else { $permalink = get_permalink(); } // Better logout link <a href="<?php echo wp_logout_url( $permalink ); ?>">Logout</a>
That link will properly let a user log out and stay on the same page, even on archives pages or the main blog posts page.
Questions and Comments are Welcome