Personalizar el ingreso y mejorar el acceso a la publicación en Wordpress

Este template que estoy realizando y que iré actualizando así (en vivo) tendrá algunos ajustes que tienen que ver con poder compartir y publicar el proceso de código para el que lo necesite lo pueda aplicar a sus propias plantillas, utilizo en este momento Wordpress 2.6 pero al no ser cambios sustanciales puede servir a versiones anteriores y futuras del sistema.

Necesidad

Poder ingresar desde cualquier página accediendo a un enlace ó a una forma y entrar a wordpress, y, una vez ingresado, me permita acceder siempre a la publicación, a las preferencias de wordpress y al tablero (dashboard) desde cualquier página del sitio web. Eso sí, que esas opciones sólo aparezcan si me he loggeado correctamente.

Primera Alternativa

Modificar el archivo “sidebar.php” adjuntando una parte de código que describo a continuación:

<?php if ( $user_ID ) : // Check if logged in ?>
	<li><a href="<?php bloginfo('url') ?>/wp-admin/">Dashboard</a></li>
	<li><a href="<?php bloginfo('url') ?>/wp-admin/post-new.php">Escribir</a></li>
	<li><a href="<?php bloginfo('url') ?>/wp-admin/profile.php">Opciones de perfil</a></li>
	<li><a href="<?php bloginfo('url') ?>/wp-login.php?action=logout&amp;redirect_to=<?php echo urlencode($_SERVER['REQUEST_URI']) ?>">Terminar Sesión</a></li>
	<?php else : // User is not logged in ?>
	<li><?php wp_loginout(); ?></li>
<?php endif; ?>

Esta alternativa brinda opción de ingreso con un solo enlace, luego de ingresado acceso a:

  • Ir al tablero (Dashboard)
  • Acceder a la escritura de un post desde cualquier página del blog
  • Acceder a las opciones de perfil
  • Terminar sesión

Alternativa Avanzada

Adicional a poder ingresar es posible incluír la forma de ingreso con usuario y contraseña desde la misma plantilla, un saludo, enlaces y la opción de ingresar y salir a páginas diferentes al dashboard de wordpress, también puedes incluír un acceso para que el usuario recupere su contraseña. Esta solución es bastante buena si tu wordpress es multiusuario y permites el registro:

Paso 1: en la plantilla header.php parte superior agrega:

	<? //Prueba si la cookie es soportada por el browser y prevenir un bug en wordpress 2.2.3
	setcookie(TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN);
	if ( SITECOOKIEPATH != COOKIEPATH )
	setcookie(TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN); ?>

Paso 2: en la plantilla sidebar.php agregas el siguiente código

<?php if ( $user_ID ) : // Check if logged in ?>
<h3><?php printf(__('Hola, %s.'), $user_identity) ?></h3>
	<ul>
		<li><a href="<?php bloginfo('url') ?>/wp-admin/">Dashboard</a></li>
		<?php if ( $user_level >= 1 ) : ?>
		<li><a href="<?php bloginfo('url') ?>/wp-admin/post-new.php">Escribir</a></li>
		<?php endif // $user_level >= 1 ?>
		<li><a href="<?php bloginfo('url') ?>/wp-admin/profile.php">Opciones de perfil</a></li>
		<li><a href="<?php bloginfo('url') ?>/wp-login.php?action=logout&amp;redirect_to=<?php echo urlencode($_SERVER['REQUEST_URI']) ?>">Terminar Sesión</a></li>
	</ul>
<?php else : // User is not logged in ?>
	<form name="loginform" id="user-loginform" action="<?php bloginfo('url') ?>/wp-login.php" method="post">
		<p>
		<label>Nombre de Usuario:<br />
		<input type="text" name="log" id="user_login" class="input" value="" size="20" tabindex="10" /></label>
		</p>
		<p>
		<label>Contraseña:<br />
		<input type="password" name="pwd" id="user_pass" class="input" value="" size="20" tabindex="20" /></label>
		</p>
		<p><label><input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90" /> Recordar</label></p>
		<p class="submit">
		<input type="submit" name="wp-submit" id="wp-submit" value="Login &raquo;" tabindex="100" />
		<input type="hidden" name="redirect_to" value="<?php echo $_SERVER['REQUEST_URI'] ?>" />
		</p>
		<p>
		<a href="<?php bloginfo('url') ?>/wp-login.php?action=lostpassword" title="¿Olvidó su contraseña?">¿Olvidó su contraseña?</a>
		</p>
</form>
<?php endif; ?>

Las opciones que te da este código permiten

  • Sar un saludo con nombre de usuario
  • Acceso a perfil
  • Si tiene un perfil de edición le permiten escribir
  • Terminar sesión y redirección a la página desde donde sale
  • Forma de ingreso con redirección a la página desde donde hace el login
  • Opción de recordar los valores de ingreso
  • Opción de recuperar contraseña

Si lo revisan bien pueden ingresar aun más enlaces a partes de wordpress según sus predilecciones con el plus de poder hacerlo según el perfil del usuario.

Eso es, espero les puedan servir estas alternativas para su instalación, soy un poco reacio a buscar plugins que me den una solución similar si con un pequeño ajuste de plantilla se logra lo mismo.

Abrazos.