Wordpress como CMS#1 5 Febrero, 2008

Esta entrada ha sido publicada por Covi y está archivada en Desarrollo Web

Bien, esta pretenderá ser la primera parte de una serie de post en los que explico mi experiencia en el intento, a decir verdad muy fructífero, de convertir o más bien usar Wordpress como un CMS, ya sabéis: “Content Management System” o para los más profanos: uno de esos que tanto os gustan Joomla o hace mucho tiempo PHP_Nuke… Post-Nuke, Xoops, Drupal, etc…

Se pueden encontrar algunas referencias de esta visión de Wordpress en la comunidad o buscando en google, por ejemplo, por “Wordpress as CMS” que creo es una referencia bastante importante.

Y es que como siempre he mencionado, en mi opinión Wordpress puede funcionar tanto o mejor que esos pesados sistemas gracias a su potencia y flexibilidad.

Metadatos en los posts

En este caso hablaremos de los poco conocidos meta-datos de las entradas y que Wordpress explota muchísimo de forma interna aunque a los usuarios se les suelen pasar desapercibidos. Por ejemplo, Wordpress los usa para saber los adjuntos (attachments) del post en particular junto a algunos plugins como reproductores de audio en Flash, etc…

Para probar los metadatos de tus entradas puedes intentar usar en tus plantillas o en los posts mismos (si puedes ejecutar PHP en ellos) la función the_meta(); por ejemplo así:

<?php the_meta(); ?>

Podéis leer la referencia del Codex de Wordpress aquí

Probémoslo

Nosotros usaremos a continuación, describiremos un método algo trivial porqué no?, para proporcionar datos extra que no serán muy útiles desde otras funciones de nuestro CMS y más tarde un breve resumen de las posibilidades que ofrecen estos metadatos:

Descripción de Páginas Estáticas

La más trivial es el uso de una pequeña descripción para nuestras páginas estáticas que nos permitirá entre otras cosas situar dicha descripción en la parte que deseemos de nuestra plantilla de página por ejemplo. O usarla directamente en el texto de la entrada aunque yo recomendaría el uso de alguna plantilla para mantener la base de datos más limpia y que nuestras funciones partan desde sólo un origen: la plantilla, evitando posibles errores.

Lo que habría que hacer es incluir un metadato nuevo a la entrada, esto se hace desde el desplegable de la parte inferior (por defecto) llamado Campos Personalizados.
Olvidaremos los metadatos existentes del desplegable Seleccionar del Campo Clave que no hayamos introducido nosotros (si nunca los usaste, todos ellos serán internos de Wordpress o de plugins).
Agregaremos uno nuevo cuya Clave, ojo!, usaremos en todas nuestras entradas así que conviene pensarla bien pues será única para identificar esta funcionalidad o metadato. En mi caso la llamaré: PageDesc.

Es decir:
En Seleccionar no escogemos ninguno la primera vez.
Luego introducimos nuestro nombre para la clave en Clave.
Y, esto ya es en exclusiva para esta página, introducimos el valor de la clave PageDesc en mi caso.
Por ejemplo:
“Esta es la descripción de esta página.” (Se puede incluir HTML).

Bien, ya está :D , ya hemos agregado un nuevo metadato PARA TODAS LAS ENTRADAS llamado PageDesc cuyo valor PARA ESTA ENTRADA es:
“Esta es la descripción de esta página.”

Como vamos a mostrar ese metadato en la entrada?:
Muy fácil, podemos listarlos todos con la función mencionada antes: the_meta(); que nos generará una lista HTML estándar, pero queremos sólo ese metadato, el PageDesc:
Bien, pues tenemos varias funciones para ello desde recorrer el array de metadatos y seleccionar el que queramos hasta escoger la clave exacta que queremos de los metadatos, y esto haremos.

Generaremos, en la plantilla o el propio post, una variable que nos extraiga el metadato PageDesc (Para el fallo de la función uso simplemente the_title()):

1
<?php $PageDesc = (function_exists('get_post_meta')) ? get_post_meta($post->ID, 'PageDesc', true) : the_title(); ?>

Bien, ahora solo nos queda imprimirlo, como digo en la plantilla o por ejemplo en el propio post ^^!

En mi caso lo hago desde la plantilla de página estática: page.php de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
	<!--story-->
 
	<!-- Descipcion de pagina desde los metatags del post -->
	<?php $PageDesc = (function_exists('get_post_meta')) ? get_post_meta($post->ID, 'PageDesc', true) : the_title(); ?>
	<p class="page_desc"><?php echo $PageDesc;?></p>
 
	<div class="storycontent_page">
 
		<?php the_content();?>
 
	</div>
 
	<!--end story-->

Porqué lo hago así?:
Porque puedo permitirme situar el metadato en cualquier lugar de la plantilla y, por ejemplo, escaparlo del flotante que uso como Tabla de Contenidos mediante JQuery, quedando la descripción intacta al inicio de la página y el contenido publicado por otra parte sin mezclarse ambos.

Otros usos

Las posibilidades son desde luego abrumadoras, puedes generar infinidad de metadatos y relacionar tus posts de la forma que imagines con simples consultas a la base de datos: Situaciones en Google Maps, planos, archivos de audio (muy popular ahora y más con la llegada de WP2.5, datos para varios posts…)

Por ejemplo, en la web de La Guardia los uso para añadir datos de las concejalías, así puedo acceder con una simple línea de código desde a los datos de contacto, localización, etc… a las noticias generadas por esa concejalía, por ejemplo añadiendo un metadato sobre la categoría de noticias… pfff, como digo, muchísimas posibilidades que hace de Wordpress mucho más que un CMS :D

…me encanta Wordpress ^^!


Dejar un comentario

XHTML: Puedes usar estas etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Aunque no estamos sujetos a la LOPD, igualmente informamos que los datos que se introduzcan en el presente formulario serán tratados y protegidos de acuerdo a dicha ley. El propietario actual de este sitio web es el responsable del tratamiento de los datos.

No se garantiza la publicación del comentario.