Recientemente tuve la increíble experiencia de hacer un pequeño sitio web para un cliente en base a Wordpress, y aprendí muchas cosas acerca de codificar el tema y hacer más fácil la vida de los clientes. Voy a repasar las que, en mi opinión, son las cinco cosas más importantes que aprendí.

Sidebars “Widgetizadas” (Sidebars Dinámicas)

Esto fue lo que más me ayudó. El diseño del sitio necesitaba un área de enlaces en el pie de página para enlazar a otros grupos, departamentos y organizaciones relacionadas con el sitio. También necesitaba información de contacto al pie de página.

La solución fue utilizar barras laterales en base a widgets y luego modificar el código CSS para convertir estas barras laterales en pie de página.

Para agregar una barra lateral, inserta este código en el archivo functions.php de tu tema:

1
2
3
4
<?php
 if ( function_exists('register_sidebar') )
 register_sidebar(1);
?>

Puedes repetir este código para cuantas barras laterales necesites. Sólo tienes que ir cambiando el “1″ por otro número para cada barra.

Ahora inserta este código donde quieres que aparezca tu barra lateral:

1
2
3
<?php if ( !function_exists('dynamic_sidebar')
|| !dynamic_sidebar(1) ) : ?>
<?php endif; ?>

Esto hará que tu barra lateral dinámica aparezca. En mi caso, sólo ajusté el ancho de cada widget y los alineé hacia la izquierda con este código:

1
2
3
4
#footer .widget{
width:290px;
float:right;
}

Al configurar el ancho de los widgets y alinearlos hacia la izquierda en mi pie de página, creé un área de contenido editable que no interfiere con las entradas o la estructura de la página, utilizando widgets y barras laterales dinámicas.

“Loops” Personalizados

En el sitio que estaba haciendo no iba a existir un blog, sino que una sección de noticias y una sección de eventos, así que necesitaba separar las entradas por categorías y realizar una consulta en forma separada:

1
2
3
4
5
<?php
 $news= 'category_name=news&orderby=date&order=DEC&showposts=3';
 query_posts($news); // run the query
 ?>
 

Este fragmento de código crea una nueva consulta llamada news ($news), toma 3 entradas desde la categoría de noticias y las ordena en forma descendente por fecha. Luego, se debe configurar el Loop de forma normal bajo ese código. Mi Loop completo se veía así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php if (have_posts()) : ?>
	<?php while (have_posts()) : the_post(); ?>
	<?php
		if ( $news%2 ) {
    		echo "<li class='news_even'>";
			} else {
    		echo "<li class='news_odd'>";
			}
			?>
			<h3 class="smallindent"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>
			<p class="posted smallindent"><?php the_time('m-d-y') ?> </p>
			<div class="smallindent"><?php the_excerpt(); ?></div>
		</li>
		<?php $news++ ?>
	<?php endwhile; ?>
	<?php else : ?>	
	</ul>
	<?php endif; ?>

Menús Desplegables

Los clientes querían que el sitio web tuviera un menú despegable. Normalmente me habría opuesto a esta idea, pero ellos tenían bastante contenido que deseaban incluir en el sitio. Después de buscar durante varias horas y probar varios métodos para el menú despegable, encontré esto. Resultó ser el “santo grial” que estaba buscando, compatible con todos los navegadores, y funcionó de inmediato con el marcado generado por la función wp_list_pages.

Simplificar el Panel de Administración

Después de la primera reunión y sesión de entrenamiento, quería encontrar una manera de esconder varias partes del panel de administración que permanecerían sin uso. El asunto era simplificar Wordpress hasta dejarlo en lo más básico: sin etiquetas, sin necesidad de organizar categorías o la biblioteca multimedia. La solución fue wplite. Este ingenioso complemento permite deshabilitar paneles en la pantalla de administración. También, permite limitar los campos de metadatos de las entradas (excepciones, etiquetas de las entradas, orden de páginas, plantillas, nombres para url, etc). Resultó ser lo que estaba buscando para hacer la administración del sitio simple y fácil; incluso puede eliminar el tablero para que la página de inicio sea la escritura de una nueva entrada.

(Fuente: artículo de upsidedowncity.net escrito por Gino y traducido por Sara Salazar para nerv. )