Archive for May, 2010

Estilos para tu paginador

Escrito por en 10/05/2010

Si eres de los programadores a los que no se les da demasiado bien el tema del diseño y el combinar correctamente los colores para no provocar conjuntivitis a tus visitantes… te dejamos con un pequeño recurso con varios estilos para el paginador de tu web. Seguro que alguno encaja!

ENLACE DIRECTO

Añade breadcrumb en tu WordPress

Escrito por en 07/05/2010

Es posible que te entre la duda… ¿Qué es un Breadcrumb?
Un breadcrumb es como una guía de navegación que orientará al usuario durante toda la visita de tu blog. Seguramente lo habrás visto en muchos otros blogs y páginas, y en general habrá ayudado a moverte y ubicarte durante la navegación en el sitio.

Generalmente tienen el siguiente formato:

Inicio > Categoría > Subcategoría > Título del post

¿Cómo añadirlo en tu blog WordPress?

Para añadir ésta funcionalidad en tu blog, puedes hacerlo de varias formas:

  • Instalando un plugin (Ej. Breadcrumb NavXT)
  • Creando una función en WP

En 2Novatos vamos a explicar el segundo método. A nuestra forma de verlo, cuantos menos plugins haya ralentizando la renderización del blog, mejor. Otra forma de verlo es, que siempre es mejor saber cómo funciona y qué hace cada cosa. Qué mejor forma que añadiendo y modificando la función a tu gusto.

Estuvimos buscando un breadcrumb que cumpliera nuestras necesidades, es decir, que funcionara en todo el blog y que en los post pusiera la categoría, y en caso de que ésta tuviera una ‘categoría padre’, que se mostrara también. Encontramos un ejemplo en el blog de Arie Putranto [en] que cumplía todo lo que necesitamos, os lo compartimos a todos.

Éste método incluye el breadcrumb a posts, páginas, categorías, subcategorías, resultados de búsquedas, autores… básicamente en todo el blog.
Para empezar, debes añadir la siguiente función en el archivo ‘functions.php‘ de tu theme. Si no existe el archivo, crealo en la carpeta del theme.

<?php
function wp_breadcrumb() {
	global $cat,$s,$post,$wp_locale;
	if ( get_the_category() ) $category = get_the_category();
	if ( is_tag() ) $tag = get_term($tag_ID, 'post_tag', OBJECT, 'display');
	if ( is_author() ) $userdata = get_userdata($author);
	?><div id="breadcrumb"><ul><li class="start"><a href="<?php bloginfo('url'); ?>/" title="<?php bloginfo('name'); ?>"><?php echo __('Home'); ?></a></li><?php
	if ( have_posts() ) :
		// Display breadcrumb for category and sub-category archive
		if ( is_category() ) {?><li><?php echo substr(get_category_parents($cat,true,'</li><li>'),0,-9); ?></li><?php }

		// Display breadcrumb for calendar archive
		elseif ( is_day() ) {?><li><a href="<?php echo get_year_link(get_the_time('Y')); ?>"><?php the_time('Y'); ?></a></li><li><a href="<?php echo get_month_link(get_the_time('Y'),get_the_time('m')); ?>"><?php the_time('F'); ?></a></li><li><a href="<?php echo get_day_link(get_the_time('Y'),get_the_time('m'),get_the_time('d')); ?>"><?php the_time('d'); ?></a></li><?php }
		elseif ( is_month() ) {?><li><a href="<?php echo get_year_link(get_the_time('Y')); ?>"><?php the_time('Y'); ?></a></li><li><a href="<?php echo get_month_link(get_the_time('Y'),get_the_time('m')); ?>"><?php the_time('F'); ?></a></li><?php }
		elseif ( is_year() ) {?><li><a href="<?php echo get_year_link(get_the_time('Y')); ?>"><?php the_time('Y'); ?></a></li><?php }

		// Display breadcrumb for single post and attachments
		elseif ( is_single() ) {?><li><?php echo substr(get_category_parents($category[0]->cat_ID,true,'</li><li>'),0,-9); ?></li><?php if($post->post_parent ) {?><li><a href="<?php echo get_permalink($post->post_parent); ?>"><?php echo get_the_title($post->post_parent); ?></a></li><?php } ?><li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li><?php }

		// Display breadcrumb for pages
		elseif ( is_page() ) {if ( $post->post_parent ) {?><li><a href="<?php echo get_permalink($post->post_parent); ?>"><?php echo get_the_title($post->post_parent); ?></a></li><?php } ?><li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li><?php }

		// Display breadcrumb for search result page
		elseif ( is_search() ) {?><li><a href="<?php echo clean_url( get_pagenum_link() ); ?>" title="<?php echo __('Search result for') . ' ' . wp_specialchars(get_query_var('s')); ?>"><?php echo __('Search result for') . ' ' . wp_specialchars(get_query_var('s')); ?></a></li><?php }

		// Display breadcrumb for tag archive
		elseif ( is_tag() ) {?><li><a href="<?php echo clean_url( get_pagenum_link() ); ?>" title="<?php echo __('Archive for tag') . ' ' . $tag->name; ?>"><?php echo __('Archive for tag') . ' ' . $tag->name; ?></a></li><?php }

		// Display breadcrumb for author archive
		elseif ( is_author() ) {?><li><a href="<?php echo clean_url( get_pagenum_link() ); ?>" title="<?php echo __('Article posted by') . ' ' . $userdata->display_name; ?>"><?php echo __('Article posted by') . ' ' . $userdata->display_name; ?></a></li><?php }

		// Display breadcrumb for page which got split
		if ( get_query_var('page') ) {?><li><a href="<?php get_permalink(); ?>" title="<?php echo __('Part'); ?> <?php echo get_query_var('page'); ?>"><?php echo __('Part'); ?> <?php echo get_query_var('page'); ?></a></li><?php }

		// Display breadcrumb for paged archives
		if ( get_query_var('paged') ) {?><li><a href="<?php get_permalink(); ?>" title="<?php echo __('Page'); ?> <?php echo get_query_var('paged'); ?>"><?php echo __('Page'); ?> <?php echo get_query_var('paged'); ?></a></li><?php }
	endif;
	?></ul>
	</div>
	<?php
}

?>

Una vez has añadido la función en su archivo correspondiente (functions.php). Debes modificar el archivo ‘header.php‘ de tu theme y añadir el siguiente código al final del archivo:


<?php
wp_breadcrumb();
?>

Una vez ésto está hecho, ya puedes ver que el breadcrumb sale en todo tu blog.
Ahora solo queda ponerle algo de CSS para que se adapte a tu diseño. Ésta parte la dejamos en tu mano, ya que cada diseño es diferente.

#breadcrumb { }
#breadcrumb ul { }
#breadcrumb ul li { }

Esperamos que te sea de utilidad, cualquier duda con el código no dudes en contactar-nos.

Arie Putranto [en]

DIV height: 100%

Escrito por en 05/05/2010

Bueno pues a raíz de una consulta de una amiga diseñadora… surge esta otra perlita sobre CSS.

Alguna vez maquetando hemos necesitado hacer que un <div> nos ocupe el 100% del alto de una capa, o de toda la web. Y normalmente, si no se sabe este pequeño truco, hemos tenido que hacer cosas raras. Pues bien, la solución es bastante sencilla, y es la siguiente.

Para conseguir que cualquier <div> que tengamos en nuestra web pueda tener el 100% del alto de la capa en la que se anida, solo tenemos que darle el 100% de altura al html y al body. De esta forma:


html, body { height: 100%; }

Al decirle a los tags html y body que su altura será del 100% nos permite que las capas que nosotros queramos opten también a tener esa altura. Es una tontería, pero cuando no se sabe este pequeño truco, puede dar muchos problemas el maquetar alguna cosa.

Hay que tener en cuenta también, que la capa o capas anterior a la que le queremos dar ese height:100%, deben de tener un alto especificado. Es decir, si la capa anterior le damos 200px de alto, el height:100% será de esos 200px de la capa contenedora, o si a la capa anterior le damos también 100% de alto igual que a la capa que se lo queremos dar, nos ocupará toda la pantalla. Solo teniendo en cuenta esto, podremos hacer capas al 100% en cualquier instancia.

Por si no os ha quedado demasiado claro, o queréis ver un ejemplo del funcionamiento, podéis ver esta página de ejemplo que hemos preparado:

DEMO

Esperamos que os sirva esta pequeña perla, como decimos nosotros, para vuestros diseños! ;)

Centrar un DIV horizontal y verticalmente

Escrito por en 03/05/2010

Aquí va la primera perla de 2Novatos.

Cuantas veces hemos necesitado centrar un div para un diseño, o para posicionar un texto dentro de otra capa? El que diga nunca miente, yo, muchísimas.
Y cuantos de vosotros habéis necesitado centrar un div horizontal y verticalmente? Quizá no tantos, pero si alguna vez lo habéis necesitado y no se os ha ocurrido como, os damos la solución.

Para centrar un div de forma horizontal con CSS solo tenemos que crear un div y aplicarle la siguiente clase:

Centrar horizontalmente:

.centrarH{
    width:270px;
    height:150px;
    margin:0 auto;
}

El único secreto de esta clase es el valor margin al cual le damos el valor 0 auto. Con esto lo que le decimos es que el margen superior e inferior sea igual a 0, y que el margen de la izquierda y de la derecha sean automáticos. Con lo que conseguimos que nuestra capa se posicione al centro.

Bien, y como hacemos que además de centrada horizontalmente lo esté verticalmente? Pues ya no es tan sencillo, pero tampoco es nada difícil, solo tenemos que hacer alguna división…

Centrar horizontal y verticalmente:

.centrarHV{
     width:270px;
     height:150px;
     position:absolute;
     left:50%;
     top:50%;
     margin:-75px 0 0 -135px;
}

Bien, en este caso nuestra clase ya tiene algunos atributos más que la anterior. Esta vez lo que le hemos dicho es que con left y top al 50% nos centre la capa hacia el centro de nuestra pantalla. Pero si solo hacemos eso, la capa se centra en la esquina superior izquierda, y lo que queremos es centrarla desde el centro de la capa en cuestión.

Para ello hacemos uso de una simple división. Creamos el atributo margin dándole valores negativos de la mitad del alto de nuestro div y la mitad del ancho de este. Con lo que el div se centra en el punto medio quedando centrado en la pantalla.

Pues con estas dos simples clases ya tenemos dos divs centrados horizontal y verticalmente. A continuación os dejo con una imagen que hemos hecho, para que veáis, el efecto que va teniendo aplicar las CSS.