Skip to content

Instantly share code, notes, and snippets.

@ahmu83
Last active February 5, 2022 19:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ahmu83/c7c0d1d74ac378bd4cffe20f2474aa13 to your computer and use it in GitHub Desktop.
Save ahmu83/c7c0d1d74ac378bd4cffe20f2474aa13 to your computer and use it in GitHub Desktop.
wp-adminbar toggler. Toggle adminbar from a URL parameter.
<?php
/**
* wpadminbar toggle for conveniently showing/hiding adminbar from a URL parameter.
*
* USAGE:
* 1. Upload wp-adminbar-toggler.php to theme
* 2. Include this file in theme's functions.php
* - require_once( get_stylesheet_directory() . '/wp-adminbar-toggler.php' );
* 3. Use ?adminbar=1 in the URL to show adminbar. Use ?adminbar=0 in the URL to
* hide adminbar (this will persist the adminbar show/hide status using $_SESSION)
*
* @return void
*/
add_filter('show_admin_bar', function($show_admin_bar) {
if ( session_status() === PHP_SESSION_NONE ) @session_start();
$adminbar_toggle = isset($_GET['adminbar']) ? (int) $_GET['adminbar'] : null;
if ( $adminbar_toggle !== null && $adminbar_toggle === 1 ) {
$_SESSION['adminbar'] = 1;
} else if ( $adminbar_toggle !== null && $adminbar_toggle === 0 ) {
$_SESSION['adminbar'] = 0;
}
$adminbar = isset($_SESSION['adminbar']) ? $_SESSION['adminbar'] : false;
$adminbar = $adminbar === false ? (isset($_GET['adminbar']) && (int) $_GET['adminbar'] === 1 ? true : false) : $adminbar;
/**
* adminbar toggler has not beign triggered yet so don't do anything
*/
if ( !isset($_SESSION['adminbar']) ) return $show_admin_bar;
return $adminbar;
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment