cliff
2/29/2016 - 10:40 PM

Adds admin login / logout link via shortcode. Snagged from Genesis theme.

Adds admin login / logout link via shortcode. Snagged from Genesis theme.

<?php
/*
  *
  * Snagged from Genesis!
  * /wp-content/themes/genesis/lib/shortcodes/footer.php
  *
  */
add_shortcode( 'tk-loginout', 'tk_loginout_shortcode' );
/**
 * Adds admin login / logout link.
 *
 * Support shortcode attributes are:
 *   after (output after link, default is empty string),
 *   before (output before link, default is empty string),
 *   redirect (path to redirect to on login, default is empty string).
 *
 *
 * @param array|string $atts Shortcode attributes. Empty string if no attributes.
 * @return string Shortcode output
 */
function tk_loginout_shortcode( $atts ) {

	$defaults = array(
		'after'    => '',
		'before'   => '',
		'redirect' => '',
	);
	$atts = shortcode_atts( $defaults, $atts, 'tk-loginout' );

	if ( ! is_user_logged_in() )
		$link = '<a href="' . esc_url( wp_login_url( $atts['redirect'] ) ) . '">' . __( 'Log in', 'tk-loginout' ) . '</a>';
	else
		$link = '<a href="' . esc_url( wp_logout_url( $atts['redirect'] ) ) . '">' . __( 'Log out', 'tk-loginout' ) . '</a>';

	$output = $atts['before'] . apply_filters( 'loginout', $link ) . $atts['after'];

	return $output;

}