Botones faciles y rapido con Shortcodes
Escrito el 18 Dec, 2009 por Alexis en Wordpress
Como todos sabrán los shortcodes son esos pequeños atajos que podemos crear para que Wordpress los reconozca con una sintaxis simple.
El día de hoy tenia ganas de crear una serie de botones solo con CSS y CSS3 e implementarlos con shortcodes. Supongamos que queremos resaltar un link de descarga, usualmente tendríamos que crearlos dentro de la vista HMTL para poder utilizar etiquetas como div, span o class. Por suerte con unos pequeños hacks podemos crear un shortcode y así reducir nuestra sintaxis.
Lo que vamos a crear un shortcode dentro del cual podemos asignarle al botón diferentes colores, tamaños y una URL de salida
Editando nuestro archivo functions.php
Este la piedra angular de nuestra receta. Aqui vamos a definir el comportamiento, los valores y la sintaxis de nuestro shortcode.
function miboton( $atts, $content = null ) { //definimos nuestro shortcode extract(shortcode_atts(array( 'url' => '#',//el campo para nuestra URL 'color' => 'naranja', //el color por defecto 'size' => 'normal', // el tamaño por defecto ), $atts)); return '<a href=" '.$url.'" class="button '. $color . ' '. $size . '">' . $content . '</a>';// el output } add_shortcode('boton', 'miboton'); //sintaxis
Como veras la dirección default para nuestra URL sera #, esto en caso de olvidarnos de asignar una URL para que “rompa el código”. Por ultimo, y por defecto se mostrara un botón de color naranja y un tamaño normal
Aplicamos un poco de formato
Si lo recordaras hace unos días atrás te mostré como crear unos botones con CSS y CSS3. El articulo al que hago referencia es Crea simples botones con CSS3 Te suguiero que lo releas para tenerlo más fresco.
Esta técnica es tomada de Zurb y solo necesitamos una solo imagen: overlay-button
Manos a la obra
.button { background:#222 url(images/overlay-button.png) repeat-x 0 0; border-bottom: 1px solid rgba(0,0,0,0.25);/* Borde negro con transparencia en 25%*/ color: #fff !important; cursor: pointer; display: inline-block;/* Alinear corectamente el boton*/ font-size: 13px; font-weight: bold; line-height: 1; -moz-border-radius: 5px;/* Borde para Firefox */ -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.25);/* Sombra negra en 25% para Firefox*/ overflow: visible;/* contedido sobrante visible*/ padding: 5px 15px 6px; position: relative; text-decoration: none; text-shadow: 0 -1px 1px rgba(0,0,0,0.25);/* Sombra negra en 25% para el texto */ webkit-border-radius: 5px;/* Borde para Webkit*/ webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.25);/* Sombra negra en 25% para Webkit*/ width: auto;/* Importante para que el boton se ajuste a nuestro texto */ } .button:hover { background-color:#111; color:#fff; } .button:active { top:1px; } .small.button { font-size:11px; } .large.button { font-size:14px; padding:8px 19px 9px; } .naranja.button { background-color:#ff5c00; } .naranja.button:hover { background-color:#d45500; } .azul.button { background-color:#2daebf; } .azul.button:hover { background-color:#007d9a; } .rojo.button { background-color:#e33100; } .rojo.button:hover { background-color:#872300; } .verde.button { background-color:#91bd09; } .verde.button:hover { background-color:#749a02; }
Para este caso estamos creando cuatro colores para nuestro botón: Azul, Verde, Narnaja y Rojo; y tres tamaños: normal, small y large
Implementación y Demos
Ya la parte ardua ha pasado y solo queda implementar nuestro botón. Podemos usar los siguientes formatos:
[boton url="http://eliseos.net" color="rojo" size="large"]Este es un boton rojo large[/boton]
[boton url="http://eliseos.net" color="azul" size="small"]Este es un boton azul small[/boton]
[boton]Este es un boton por defecto[/boton]
Tambien podemos apilarlos
<p> [boton color="rojo" size="medium"]Demo[/boton] [boton url="http://eliseos.net" color="verde" size="medium"]Download[/boton] [boton url="http://eliseos.net" size="medium"] Otro Download[/boton] </p>
Palabras finales
En menos de 5 minutos hemos creado unos hermosos botones con una sintaxis muy sencilla y fácil de recordar. Espero que les sea de utilidad
10 comentarios to “Botones faciles y rapido con Shortcodes”
Trackbacks/Pingbacks
- Tweets that mention Botones faciles y rapido con Shortcodes | Eliseos.net -- Topsy.com
- uberVU - social comments
- Bitacoras.com









Cedrik |6/1/2010| Site: koodo.es
Saludos, queria avisarte que siempre que intento utilizar tus scripts los cuales incluyen add_shortcode me sale un error de que la funcion no existe o algo asi.
Podrias explicarme mas de porque siempre tnego este error?
Gracias!
Alexis |6/1/2010| Site: eliseos.net
Que error específicamente?
Intenta añadir siempre las funciones inmediatamente despues de
Cedrik |6/1/2010| Site: koodo.es
Ejemplo:
Acabo de poner esta funcion que tienes en la web:
function permalink_thingy($atts) {
extract(shortcode_atts(array(
‘id’ => 1,
‘text’ => “” // default value if none supplied
), $atts));
if ($text) {
$url = get_permalink($id);
return “$text“;
} else {
return get_permalink($id);
}
}
add_shortcode(‘permalink’, ‘permalink_thingy’);
Al poner dicha funcion recivo este error:
Fatal error: Call to undefined function add_shortcode() in /home/xxxxx/public_html/wp-includes/functions.php on line 66
=S
y todas las que he intentando que estan aqui con shortcodes no van :S
Cedrik |6/1/2010| Site: koodo.es
Tambien intente ponerlo inmediatamente despues del <? y me da el mismo resultado.
Cedrik |6/1/2010| Site: koodo.es
Saludos itnetne editarlo con esta manera y de todos modos me sigue dando el mismo error, exactamente el mismo :S
[php]
function permalink_thingy($atts) {
extract(shortcode_atts(array(
‘id’ => 1,
‘text’ => “” // default value if none supplied
), $atts));
if ($text) {
$url = get_permalink($id);
return “$text“;
} else {
return get_permalink($id);
}
}
add_shortcode(‘permalink’, ‘permalink_thingy’);
[/php]
Alexis |6/1/2010| Site: eliseos.net
Tenes un problema con el “encode” en las lineas 3 y 4
Este seria el codigo valido:
Suerte
Cedrik |6/1/2010| Site: koodo.es
Hola cambie el codigo por el que me ofreces aqui y recivo exactamente el mismo error =S
Cedrik |6/1/2010| Site: koodo.es
Aparte de esta increible funcion que todavia no logro hacer funcionar a causa del error que me sale, tambien me gustaria saberr como hacer para eso que en algunas webs hacen para resaltar un contenido especial de todo el tema sea por “” extra grandes y texto mas grande o mas claro del resto del tema o sea por esas cosas que parecen alertas de colores rojos y/o amarillos, verdes etc.
Por favor ayudame a resolver este problema me encantan tus scripts usados con el add_shortcode =D
Alexis |6/1/2010| Site: eliseos.net
Podes pegar todo el contenido del archivo functions.php en pastie.org y pasarme el link a alexis@eliseos.net
Quizae este tuto te guie en como diferenciar entradas en wordpress
Cedrik |6/1/2010| Site: koodo.es
Ya esta alexis, ya te lo mandé y muchas gracias por el soporte!