Reusando el header y footer de wordpress en aplicaciones externas

July 20, 2011

Luego de romperme la cabeza por algunas horas tratando de re-usar el header y el footer de wordpress de alguna forma dinámica que me permitiera reproducir y mantener sincronizado el diseño en aplicaciones externas, encontré una forma ideal para lograrlo.

El proceso es sencillo pero vas a requerir de acceso al shell para hacerlo.  Al menos para preparar los scripts y el cron si lo vas a tener automático.

  1. Crea un directorio para guardar el script y los templates que necesitas.  Yo los tengo fuera de mi document root.

    /home/usr/headers

  2. Aqui dentro vas a crear varios archivos, cada uno de estos archivos va a incluir el archivo wp-blog-header.php de la raiz de tu instalacion de wordpress y tambien el header y el footer respectivamente del theme de tu wordpress: header-wrapper.php footer-wrapper.php

    Ej.: header-wrapper.php
    <?php
    require('/home/usr/public_html/wp-blog-header.php');
    include "/home/usr/public_html/wp-content/themes/name/header.php";
    ?>
    
    Ej.: footer-wrapper.php
    <?php
    require('/home/usr/public_html/wp-blog-header.php');
    include "/home/usr/public_html/wp-content/themes/name/footer.php";
    ?>

  3. Ahora necesitamos un script que va a ejecutar los comandos: update_headers.sh

    #!/bin/bash
    rm -rf header-wrapper.html && php header-wrapper.php > header-wrapper.html
    rm -rf footer-wrapper.html && php footer-wrapper.php > footer-wrapper.html

    En esencia este script empieza borrando header-wrapper.html y footer-wrapper.html si ya existen.  Luego usa php (en el cli) para ejecutar los archivos php que creamos en el paso anteior y los exporta a un archivo .html independiente para nuestro uso.

  4. Aplica permiso de ejecucion al script que creamos en el paso anterior.

    chmod a+x update_headers.sh

  5. Ya solo nos queda ejecutar el script para generar los .html que usaremos en nuestra aplicación externa.

    ./update_headers.sh

  6. Ya con tus dos archivos en formato .html exportados puedes hacer con ellos lo que quieras.  En mi caso, la aplicación donde los necesitaba usa Smarty.  Con Smarty es muy sencillo incluir un archivo externo.  Este es el comando:

    {include file="/home/usr/headers/header-wrapper.html"}

Algunos pasos opcionales:

En mi caso yo estoy usando estos scripts para integrar el WHMCS con WordPress y mantener la visual en todo el website.  He hecho algunos reemplazos que me interesaban y removido algunos códigos innecesarios usando el paquete de PEAR, me lo encuentro muy util.

Si encuentras algún uso creativo de estos scripts por favor déjame saber en un comentario.

Credito para algunas de las paginas que use de referencia:

Saludos,
Jose R. Lopez