WordPress Hacks para sitio web solo para miembros

19

Por defecto, WordPress es una herramienta de blogs. Sin embargo, realmente puedes personalizarlo para hacerlo como quieras. Mucha gente usa WordPress para crear un sitio web solo para miembros.

Siempre puede usar un complemento, pero si solo necesita una pequeña modificación, ¿por qué instalar un complemento cuando puede hacerlo con unas pocas líneas de código? Aquí hay algunos trucos simples pero efectivos para crear un sitio solo para miembros.

Contenido solo para miembros sin complemento

Si hay cierto contenido en su sitio que desea mostrar solo al miembro registrado, puede hacerlo utilizando el siguiente código en su tema. Todo lo que ocurra entre is_user_logged_inellos será visto solo por los miembros.

<?php if (is_user_logged_in()) { ?>
// Content for Logged in user
<?php } else {?>
// Content for everyone else
<?php }?>

Muestre el formulario de inicio de sesión de WordPress en cualquier lugar y personalícelo

Si desea incluir el formulario de inicio de sesión de WordPress en cualquier parte de su tema, puede hacerlo utilizando la siguiente función:

<?php ks29so_login_form(); ?>

Sin embargo, no le da la opción de personalizar el formulario de inicio de sesión, porque simplemente extrae directamente el formulario de inicio de sesión predeterminado de WordPress. ¿Qué pasa si quieres mostrar algo como esto?

Aquí hay un código para hacer eso. Pegue el siguiente código donde quiera que aparezca el formulario.

// WordPress Login Form
<?php if (!(current_user_can('level_0′))){ ?>
<h3>Member Login</h3>
<form action="<?php echo get_option('home'); ?>/wp-login.php" method="post">
<table width='100%’ cellspacing="0" cellpadding="0">
<tr>
<td>
<label><?php _e( ‘Username’) ?></label>
<input type="text" name="log" class="input" value="<?php echo attribute_escape(stripslashes($user_login)); ?>" />
</td>
<td>
<label><?php _e( ‘Password’) ?></label>
<input type="password" name="pwd" class="input" value="" />
</td>
</tr>
<tr>
<td colspan="2"><?php do_action(‘login_form’); ?>
</td>
</tr>
<tr>
<td>
<a href="<?php echo site_url(‘wp-login.php?action=lostpassword’, ‘login’) ?>" title="<?php _e(‘Password Lost and Found’) ?>"><?php _e(‘Forgot Password?’) ?></a>
</td>
<td>
<input type="submit" name="submit" value="Log In" class="button" />
<input type="hidden" name="redirect_to" value="http://<?php echo $_SERVER['SERVER_NAME']. $_SERVER['REQUEST_URI'] ?>" />
</td>
</tr>
</table>
</form>
<?php } else { ?>
<!– When User logged in Show the following info –>
<h2>Logout</h2>
<?php get_currentuserinfo();?>
Welcome Back  <?php echo($current_user->user_login. " ");?><br />
<a href="<?php echo ks29so_logout_url(urlencode($_SERVER['REQUEST_URI'])); ?>">Logout</a><br />
<a href="<?php echo get_admin_url(); ?>">Admin?</a><!– If you are admin goes to admin dashboard –>
<?php }?>

Puede agregar una etiqueta div CSS para darle estilo. La ventaja de usar este formulario de inicio de sesión es que casi puede crear un mini tablero para miembros usando la función get_currentuserinfo() y mostrar cualquier información sobre el usuario.

Menú personalizado de WordPress para miembros

Al igual que el contenido, puede crear un menú de WordPress personalizado para los miembros. Primero registremos el menú. Vaya al archivo de funciones de su tema (functions.php). Utilice el siguiente código para registrar los menús.

register_nav_menus( array(
‘primary’ => __( ‘Primary Navigation’, ‘twentyten’ ),
‘visitor’ => __( ‘Visitor Navigation’, ‘twentyten’ ),
‘footer’ => __( ‘Footer Navigation’, ‘twentyten’ ),) );

Ahora, coloca el siguiente código donde quieras que aparezca tu menú, muy probablemente dentro del archivo header.php.

<?php
if (is_user_logged_in()) {
ks29so_nav_menu( array( ‘container_class’ => ‘menu-header’, ‘theme_location’ => ‘primary’) );
} else {
ks29so_nav_menu( array( ‘container_class’ => ‘menu-header’, ‘theme_location’ => ‘visitor’) );
};?>

Ahora necesita crear el menú en el revés de WordPress. La configuración de "Menús" debe estar en la pestaña Apariencia. Cree un menú con el nombre principal y visitante. En ambos menús, agregue lo que desee mostrar. Por ejemplo: si desea que una página se muestre solo cuando el usuario inicie sesión, agréguela el menú principal.

También puede crear un menú de pie de página dinámico utilizando el mismo método.

Campos personalizados de WordPress y trucos para blogueros

Puede usar WordPress para crear un sitio web personalizado y de aspecto profesional. En esta publicación, compartimos algunos trucos y trucos de campos personalizados de WordPress que le permitirán tener un mejor sitio con WordPress.

A veces puede haber bloggers invitados que solo escriben una publicación en su sitio y eso es todo. Puede usar este método para mostrar información regular del autor. Tenga en cuenta que el autor ha sido registrado en WordPress. Tal vez, no quiera registrarse cada vez que escribe un nuevo autor invitado. Pero, ¿cómo consigue que la información del autor invitado aparezca en el mismo formato que el autor normal? ¡Campos Personalizados!

Nombre del autor invitado en la página principal y publicaciones individuales

Lo primero que debemos hacer es configurar una declaración if de WordPress para obtener el valor del campo personalizado. De esta forma, solo aparecerá cuando se asigne el valor del archivo personalizado. Abra su "index.php" y "single.php" y pegue el siguiente código donde desea que aparezca el nombre del autor. Podría ser después de la fecha o después de los comentarios. Por ejemplo, después de este código:

<?php the_time(‘M j, Y’) ?>
< ?php if (get_post_meta($post->ID, 'guest_author_name', true)) { ?>
// check to see if custom field guest author name exists
< ?php echo get_post_meta($post->ID, "guest_author_name", $single = true); ?>
< ?php } ?>

Una vez que colocamos la declaración if, simplemente la llamamos en cualquier publicación en la que queramos que aparezca el nombre del autor invitado. El nombre del autor invitado debe aparecer en la página principal y solo para publicaciones específicas.

Bloque de información de autor invitado en publicación individual

De acuerdo, entonces tenemos el nombre que aparece en la meta descripción de la publicación, pero también sería bueno tener alguna información sobre el autor invitado.

Nuevamente, primero tenemos la declaración condicional if que busca la descripción y el pulgar de la imagen del autor. No olvides cambiar la imagen del directorio. Además, adjuntamos una clase al bloque y al pulgar, que permite diseñar tanto la imagen como el bloque usando CSS.

<?php if (get_post_meta($post->ID, ‘autho_thumb’, true)) { ?> // checks to see if the custom field exist
<div class="writer_bio">
<img class="autho_thumb" src="http://media.webdesignviews.com/author/<?php $values = get_post_custom_values("autho_thumb"); echo $values[0]; ?>" alt="Author Thumb" width="60" width="60" height="60" /><?php }? <?php if (get_post_meta($post->ID, ‘guest_author’, true)) { ?>
<?php echo get_post_meta($post->ID, "guest_author", $single = true); ?></div>
<?php } ?>

Aquí está el CSS que usé

.writer_bio {
color: #666;
background: #eee;
text-transform: none !important;
font-size: 13px;
font-weight: normal;
height: 75px;
width: 600px;
padding: 6px;
padding-bottom: 6px;
padding-left: 0;
margin-bottom: 10px;
}
.writer_bio img {
padding: 0 !important;
float: left !important;
margin-left: 4px !important;
margin-top: 3px !important;
border: 2px #ccc solid !important;
height: 60px;
}

Incluso puedes estilizar más con la clase autho_thumb. Una vez hecho esto, todo lo que necesita hacer es agregar autho_thumb y guest_author en el campo y completar la información. Incluso puede agregar HTML como un enlace en el campo personalizado.

Ahí tienes dos campos personalizados para la información del autor invitado. Esto puede parecer muchos pasos. Confía en mí una vez que lo hayas hecho, solo es cuestión de agregar la imagen y la descripción la próxima vez que quieras hacerlo.

Mejor campo personalizado para mostrar la imagen de la publicación en la página principal

Este método se usa para mostrar un pulgar para la publicación en el frente. Quería ir un poco más allá y hacerlo fácil para el usuario final. Además, con el método de Jean, todas las imágenes tendrían el mismo alt="post-image” y podría no ser bueno para los motores de búsqueda. Además, tendrías que incluir la URL completa para las imágenes cada vez. Primero aquí está el código:

<?php $postimageurl = get_post_meta($post->ID, ‘post-img’, true);
// variable for image
$image_alt = get_post_meta($post->ID, ‘post-img’, true);// variable for description
// check if the the custom field is called
if ($postimageurl) {
?>
<a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php echo $postimageurl; ?>" class=
quot;post-img" alt="<?php echo $image_alt; ?>"; width="500" height="300" /></a>
<?php } else { ?>

Antes de explicar el código, observe que no agregué una declaración else para un pulgar predeterminado. Mire la publicación de Jean si desea tener una imagen predeterminada si la imagen se asigna en un campo personalizado.

Primero tenemos dos variables $postimageurl y $image_alt. El primero es obtener la ubicación de la imagen y el segundo es agregar el nombre de la imagen. Luego, nuevamente configuramos una declaración if para verificar si se llama al campo personalizado.

<?php echo get_option(‘siteurl’).‘/wp-content/uploads/thumb/’?>

Lo diferente es el código anterior que obtiene la ubicación de la imagen. Creé una carpeta llamada thumb en mi directorio de carga de WordPress, por lo que en lugar de escribir la URL completa cada vez que escribía el nombre de la imagen, una vez que cargaba la imagen en la carpeta.

Si desea un directorio diferente, digamos que almacenaría sus imágenes en la raíz de su dominio, simplemente reemplácelo <?php echo get_option(‘siteurl’).‘/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?>con http://yourwebsite.com/images/<?php echo $postimageurl; ?>.

Por lo tanto, el código está un poco modificado para que cada imagen de la publicación tenga un alt (título) diferente y escriba la extensión del nombre de la imagen en lugar de la URL completa.

Organice su navegación de WordPress como quiera

Lo primero que debe saber son las páginas de listas de wordpress que usan la etiqueta ks29so_list_pages, que generalmente se encuentra en header.php. pero es posible que no desee enumerar todas sus páginas. Si desea ocultar algunas de sus páginas para que no se muestren, debe hacer lo siguiente:

<?php ks29so_list_pages(‘include=7,13′ ); ?>
//or
<?php ks29so_list_pages(‘exclude=5,9′);? >

Excluir o incluir casi funciona de la misma manera. Excluir omitirá ciertas páginas de la lista de páginas de WordPress e incluirá solo las páginas ID que especifique. Sin embargo, a la mayoría de los blogs de diseño web o cualquier otro blog les gusta usar etiquetas o categorías como su navegación. En ese caso, puede deshacerse de la etiqueta ks29so_list y codificar la navegación de forma personalizada. Alternativamente, también puede hacer eso con sus etiquetas. El beneficio de codificar de esta manera es que puede asignar una clase CSS para diseñar cada elemento de la navegación.

Cómo encontrar el ID de tu página de WordPress

Recientemente tuve que encontrar una ID de página para excluirla en una plantilla que estaba usando y después de unos 10 minutos finalmente encontré una manera fácil de encontrar la ID de página de una ‘página’ de WordPress.

En versiones anteriores de WordPress, creo que esto era más fácil, pero así es como puedes hacerlo ahora.

  1. Vaya al panel de administración de WordPress y luego vaya a Páginas.
  2. A continuación, desplace el cursor sobre la página de la que desea conocer el ID.
  3. Verá la ID en la barra de estado en la parte inferior del navegador (ver más abajo).

Si no puede ver la dirección completa, intente de otra manera (más abajo).

  1. Vaya al panel de administración de WordPress y luego vaya a Páginas.
  2. Luego verá la ID en la barra de direcciones. Será el número después del signo igual.
  3. Haga clic en la página de la que desea conocer el ID.

Mostrar tema de archivo

La mayoría de los temas de WordPress vienen con la página archive.php. Pero he visto muchos sitios web donde las páginas de archivo no son muy útiles y no les dicen a los usuarios qué tema o categorías están navegando. Puede agregar los siguientes códigos en su archive.php para evitar confusiones.

<?php /* If this is a category archive */ if (is_category()) { ?>
<h3 class="pagetitle">Current Browsing Topic: ‘<?php single_cat_title(); ?>’</h3>
<?php /* If this is a tag archive */ } elseif( is_tag()) { ?>
<h3 class="pagetitle">Posts Tagged ‘<?php single_tag_title(); ?>’</h3>

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More