Usar funcionalidades WordPress fuera de la raiz de WordPress


Fantástico ejemplo de como poder utilizar cualquier funcionalidad de WordPress fuera de la raíz en la que este instalado el CMS en cuestión.

Wordpress Booking Calendar

A raíz de una necesidad reciente, precisaba insertar un sistema de reservas para una casa rural (ya hemos hablado de esta web en entradas anteriores) que tiene por un lado la web corporativa y por otro el blog montado con WordPress; es por tanto que me surge la idea de utilizar algún plugin ya existente de WP en la parte de la web corporativa, así pues, he decidido utilizar el plugin llamado “Booking Calendar“que es ampliamente conocido y que posee una curva de aprendizaje muy baja, por lo que al propietario de la web no le costara demasiado gestionar las reservas del establecimiento.

Pues vamos al grano; en WordPress se provee la extensión de funcionalidades mediante acciones (actions), que permiten por lo tanto disponer de mejoras o añadidos sin tener que modificar el núcleo de WordPress y evitar de esta forma tener que modificar todos nuestros cambios si actualizamos WP a nuevas versiones. El uso de los actions es en principio fácil de entender e implementar a nivel interno, es decir, en post o pages que creemos en la parte del blog. Para esto tenemos dos opciones, usar los actions que WP ya nos facilita o crear nuestros propios actions y después lanzarlos de la misma forma:

Creando una acción:

<?php add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1); ?> 

Esta función que tanto hemos visto en plugins o código que hemos mostrado para extender WordPress, hace una función muy importante y cada parámetro aporta un grado más de personalización.

  • $tag: Nombre del action (ahora los veremos).
  • $function_to_add: Nombre de la función que ejecutaremos al activarse el action ($tag).
  • $priority: Prioridad de ejecución, de menor a mayor.
  • $accepted_args: Aceptamos (o no) el paso de parámetros a nuestra función.

Una vez creada o una vez conozcamos la acción a lanzar, solo nos queda llamar a do_action:

do_action($tag, $arg= );
 

Aplicando estas nociones fuera de WordPress

Como hemos visto antes es posible crear y lanzar acciones para extender funcionalidades de WordPress, pero ahora bien, que pasa si queremos añadir alguna funcionalidad fuera de la raíz de la instalación del CMS, pues aquí tenemos una forma muy sencilla y efectiva de hacerlo:

<?php

require( ‘../raiz_instalacion_wordpress/wp-load.php’ );

do_action(‘wpdev_bk_add_form’, 1, 2);
?>

Como podemos observar este es el sencillo código que debemos insertar en la pagina que deseemos fuera de nuestro WP, debemos hacer un require de wp_load.php que se encuentra en la raíz de nuestra instalación antes de realizar el do_action que en nuestro caso embeberá el sistema de Bookin Calendar en la pagina de reservas, que incorpora tres parámetros que Booking Calendar nos provee, puesto que ellos mismos ya han creado dos tipos de acciones que podemos utilizar y que son:

  • wpdev_bk_add_form: Esta es la acción que nos presentara el sistema de calendario y el formulario de reserva.
  • 1: Es el tipo de calendario, este parametro se llama $bookingtype en Booking Calendar.
  • 2: Es el numero de meses a mostrar, este parametro se llama $calendar_count en BC.

 

Ampliar información: wpengineer.com

Anuncios

Añadir atribulo REL para FancyBox en WordPress


Galeria - Casa Rural Puerta de la Vera

Recientemente he tenido que adaptar une web estática realizada mediante HTML5, CSS3, JS y Jquery (aunque con cierto dinamismo en PHP) para montar una sección dedicada al Blog de la empresa en cuestión (cosas de la indecisión inicial del propietario, que no sabia si lo quería o no a la hora de realizar el estudio previo), es entonces cuando después de adaptar todo el diseño inicial de la web corporativa al blog (no sin ciertos problemillas) me vi en la tesitura de si mantener los códigos Javascripts que ya funcionaban en la web o si usar plugins de WordPress para hacer las mismas funciones. Después de pensarlo me dedique a intentar implementar el código actual a la estructura de WP y sin utilizar plugins ni estilos adicionales e innecesarios.

Una de las funciones a mantener era la de la galería visual Fancybox, la cual utilizo en la mayoria de mis proyectos y que me ha dado tan buen resultado. En wordpress por tanto hay que fijarse como funcionan las galerías fotográficas propias para saber la clase a utilizar para activar Fancybox que en este caso es “.gallery a”:

<div id=”gallery-1″ class=”gallery galleryid-82 gallery-columns-4 gallery-size-thumbnail”>
 <dl class=”gallery-item”>
   <dt class=”gallery-icon”>
    <a title=”Logotipo” href=”../inicio.jpg” rel=”galeria82″>
     <img class=”attachment-thumbnail” width=”190″ height=”97″ title=”Logotipo” alt=”Logotipo” src=”../inicio-190×97.jpg”>
    </a>
   </dt>
 </dl>
 <dl class=”gallery-item”>
 …
 </dl>
</div>

En el extracto vemos que los enlaces “a” no tienen clases definidas asi que usaremos la clase “gallery” del “DIV” padre asi podremos activar Fancybox para este tipo de galerías en el código Javascript encargado de ello:

$(“.gallery a”).fancybox({
 ‘transitionIn’: ‘elastic’,  
 ‘transitionOut’: ‘elastic’,  
 ‘titlePosition’: ‘over’,  
 ‘cyclic’: true,  
 ‘titleFormat’: function(title, currentArray, currentIndex, currentOpts) {  
  return ‘<span id=”fancybox-title-over”>Imagen ‘ + (currentIndex + 1) + ‘ / ‘ + currentArray.length + (title.length ? ‘ &nbsp; ‘ + title : ”) + ‘</span>’;  
 }
});

Con esto ultimo conseguimos que las imágenes se desplieguen con el visor de imágenes de Fancybox, ahora nos queda poder recorrer mediante las flechas o cursores izquierda o derecha las imágenes de dicha galería, para ello Fancybox utiliza el atributo REL de los enlaces para conocer de antemano por que imágenes puede navegar; como esto no nos lo provee Wordpres de forma nativa hay que agregarlo manualmente en el archivo functions.php del tema WP que estemos usando (en este caso mi propio tema), así pues, hay que añadir el siguiente código al final de este archivo:

add_filter(‘wp_get_attachment_link’,’add_gallery_id_rel’);
function add_gallery_id_rel($link){
global $post;
return str_replace(‘<a href’, ‘<a rel=”galeria’. $post->ID .'” href’, $link);
}

Como podemos observar hemos remplazado la cadena original <a href con <a rel=”galeria’. $post->ID.'” href’ con lo que añadimos el atributo rel que contiene “galeria” y a este concatenamos el ID de la entrada que la contiene, con lo que así evitamos que naveguemos por todas las galerías, si es que se muestran varias en la misma pagina.

Fuentes de interés: wiki.jnestudi.com

Versión 3.4 de WordPress disponible para la descarga


WordPress 3.4 acaba de ser liberado por su equipo de desarrollo con el nombre en clave “Green” en honor del guitarrista Grant Green, que a juicio de los responsables del CMS fue un claro exponente de la calidad y simplicidad.

Justo lo que a mi me gusta!!

Mi primera entrada en wordpress!


Pues eso, esta es mi primera entrada en WordPress después de haber importado todo el contenido de Spaces de Microsoft.

Parece ser que lo tenían un poquito de lado y llegaron a un acuerdo con WordPress para hacer el traslado de todos sus espacios a los servidores de estos, lo cierto es que es una buena mudanza puesto que WordPress esta demostrado que es uno de los mejores gestores de contenidos que existe en estos momentos.

Ahora toca probar y probar… Chau