Escolar Documentos
Profissional Documentos
Cultura Documentos
Como
ya
hemos
comentado
otras
veces,
si
eres
capaz
de programar en WordPress y en la web en general, accedes a otra dimensin de
posibilidades para tu proyecto online.
Esto es as porque saber programar fulmina todas las barreras que te puedas
encontrar en el desarrollo de tu proyecto online, ya no dependers del plugin X
para hacer tal cosa o de encontrar el tema Y para el diseo que te gusta para tu
web.
Si algo no est hecho, lo haces t y listo. Y sabiendo programar, sers capaz de
hacer literalmente lo que te de la gana en tu proyecto. Adems, sers envidiado
por otros bloggers :)
Ahora bien, si nunca has programado y no tienes una base tcnica, plantearte
aprender a programar, aunque te apetezca, seguramente te d algo de vrtigo
Normal.
Por eso, hoy te quiero explicar los fundamentos necesarios para que te hagas una
idea de cmo funciona todo esto de programar en WordPress (y en la web en
general), y que veas que no es para tanto. Est al alcance de quien se lo
proponga en serio.
Tabla de contenidos [ocultar]
HTML y CSS: La base de todo
1. HTML. El lenguaje para crear los contenidos en la web
2. CSS. El lenguaje para la presentacin visual
3. JavaScript. Hacer pginas web ms inteligentes
De pginas web estticas a aplicaciones web
1. PHP. El lenguaje de programacin N1 de la web
2. MySQL. La base de datos open source ms popular del mundo
Cmo se programa en WordPress
Programar en WordPress slo con CSS
Programar en WordPress con PHP
Programar con el API de WordPress
Conclusiones
Y para ello, creo que la mejor manera es contarte cmo y por qu han nacido a lo
largo del tiempo las diferentes tecnologas que conforman la programacin web
que son, a su vez, la base para la programacin en WordPress.
Adems, creo que no vas a entender solamente cmo se programa en WordPress,
sino que te va a dar una visin y compresin del funcionamiento de la web en
general que te har entender mucho mejor todo el puzle tcnico, su filosofa y por
qu existen plataformas como WordPress en la web.
Este artculo es un calentamiento previo al Curso de programacin WordPress.
Apntate hasta el 4 de julio y disfruta tambin de un bonus especial :)
Accede al curso aqu
Por eso, antes de hablar de cmo se programa en WordPress, djame que te
cuente la historia completa de cmo se ha llegado hasta aqu.
HTML y CSS: La base de todo
Se usen las tecnologas que se usen, nuestro objetivo final siempre va a ser la
creacin de pginas web. Por eso tenemos que empezar hablando de las
tecnologas en las que estn hechas las pginas web, eso es el fundamento de
todo lo dems.
1. HTML. El lenguaje para crear los contenidos en la web
HTML (siglas de HyperText Markup Language) es un lenguaje de marcado que
permite describir la estructura y contenido de una pgina web. La idea consiste
bsicamente en aadir a un texto normal etiquetas de apertura (<>) y cierre (</>)
que le dan semntica a determinados trozos de este texto.
Mira este ejemplo:
<p>Para
aprender
a
trabajar
con
<a
2 href=http://es.wikipedia.org/wiki/HTML>HTML</a>, lo primero que hay que
hacer es</p>
En la primera lnea estamos demarcando un trozo de texto como ttulo o cabecera
de nivel 1 (principal), la h de la etiqueta viene de la palabra en ingls de
cabecera (header).
Total, era evidente que esto no se poda quedar as y que era necesario poder
crear pginas web mucho ms atractivas visualmente.
Adems, habra otra idea de diseo fundamental: separar el contenido (y su
estructura y semntica) de su representacin visual. Es decir, no mezclar ambas
cosas en el marcado HTML.
Esto permitira cosas muy elegantes como, por ejemplo, que un mismo contenido
se visualizase con maquetaciones completamente diferentes, sin tener que tocar
el contenido en s.
Esto sera muy til, por ejemplo, para visualizar una misma pgina completamente
diferente en funcin de si se ve en un ordenador o un telfono mvil (muy
limitados para visualizar contenidos, adems, en aquella poca).
Por eso se tom la decisin de limitar el HTML para lo que ya estaba, el contenido,
y abordar la parte de representacin visual con otro lenguaje diferente:
Las hojas de estilo en cascada CSS (Cascading Style Sheets).
Estas hojas de estilo son tambin un lenguaje diseado especficamente para
definir y crear la representacin visual de un documento HTML cuya primera
versin (CSS1) se public en 1995, aunque se tard mucho ms en usarse en las
pginas web de manera habitual. En la actualidad vamos por CSS3.
La filosofa bsica es que permite describir para cada etiqueta HTML (recuerda,
cosas como <h1>, <p>, <a>, etc.) sus aspectos estticos y bajo qu condiciones
(reglas) se le deben aplicar o no.
Por ejemplo, con una regla as, estaramos definiendo propiedades estticas
bsicas de un ttulo principal:
1 h1 {
2 color: #f0f0f0;
3 font-family: Arial;
4 font-size: 24px;
5 text-align: center;
6}
La regla empieza diciendo que aplica a las etiquetas HTML <h1> (ttulos
principales, nivel 1) y que todos ellos han de tener un color gris oscuro casi negro
(cdigo #f0f0f0), han de usar el tipo de letra Arial, un tamao de letra de 24
pixeles y que estos ttulos han de estar alineados al centro.
Si te fijas, esto es exactamente igual que lo que haces en un editor de texto como
Word, por ejemplo. La diferencia es simplemente que aqu no tenemos un interfaz
de usuario dnde hacer clic en botones y desplegables, sino que se lo tenemos
que describir de alguna manera al servidor web que aloje la pgina. Y eso es
precisamente lo que CSS nos permite hacer.
Y con esta regla estaramos haciendo algo similar para los prrafos, aunque no
especificamos expresamente la alineacin del texto puesto que por defecto ya se
alinear a la izquierda, que es lo que queremos para nuestros prrafos:
1p{
2 color: black; /* Equivale a #ffffff que es el cdigo para negro */
3 font-family: Verdana;
4 font-size: 16px;
5}
Son reglas muy, muy simples comparado con lo que se puede llegar a hacer con
CSS en la versin actual, CSS3, que es realmente increble.
Pero creo que este ejemplo tambin es suficiente para que te hagas
perfectamente una idea de cul es la filosofa de este lenguaje.
3. JavaScript. Hacer pginas web ms inteligentes
Hoy en da no se puede hablar de pginas web sin mencionar JavaScript.
Con JavaScript tengo dos noticias para ti, una mala y otra buena:
La mala: No es tan fcil de aprender como HTML y CSS. JavaScript ya no es un
simple lenguaje descriptivo como estos dos, sino un lenguaje de programacin en
toda regla y con ello ms complejo de aprender.
La buena: En la prctica, no necesitars aprender JavaScript. Yo mismo soy
desarrollador de profesin desde hace tiempo y tengo un dominio muy reducido de
JavaScript.
Y ahora dirs:
Pero si has dicho que todas las pginas estn hechas con HTML, CSS y
JavaScript y existen en esas webs, cmo que no se puede?
Pues s, no se puede porque nos hace falta algo ms: aprender a crear las
pginas de una maneradinmica y esto requiere saber programar en un lenguaje
como, por ejemplo, PHP, el ms popular de la web. Cmo vers luego, en este
punto es donde todo esto empieza a enlazar con el mundo de la programacin en
WordPress porque WordPress es, de hecho, una aplicacin programada en PHP.
Pero eso de de manera dinmica, qu quiere decir exactamente?
Quiere decir que empleamos un truco para poder hacer cosas como lo de los
comentarios. Al final, el resultado ser tambin una pgina HTML normal y
corriente, pero el truco est en la manera de la que se crea esa pgina.
Para que lo puedas entender, lo mejor es contrastar el modo esttico y esta nueva
tcnica dinmica entre ellas:
Cmo funcionan las pginas HTML estticas en una web
Cuando las pginas son estticas, son simples ficheros, similares a los de un
documento Word o una hoja Excel, por ejemplo. Luego para que puedas navegar
por esas pginas en una web, necesitas tener contratado un dominio y un servidor
web (un hosting) al cual subir esos ficheros.
Ejemplo:
Supongamos que has creado un fichero hola.html y tienes un domino
midominio.com y hosting contratados.
Si quieres ver tu pgina en tu web, es tan simple como subir hola.html con las
herramientas de tu hosting al servidor.
Para tu hosting te recomiendo Webempresa o Hostgator
Descuentos hasta un 25% y una comparativa aqu
Si subes el fichero tal cual al directorio raz de tu hosting, podrs navegar por l a
travs dehttp://midominio.com/hola.html
Tambin puedes crear una estructura de carpetas que se reflejar tal cual, en las
URLs, por ejemplo, si creas una carpeta prueba-1 y metes el fichero dentro de
ella, vers la pgina enhttp://midominio.com/prueba-1/hola.html
Cuando accedes a estas URLs, el servidor web devuelve el fichero hola.html sin
ms al navegador desde el cual ests accediendo a la web, igual que cuando te
descargas cualquier otro fichero de Internet. Una vez descargado, el navegador lo
visualiza. Tan simple como eso.
1 <!DOCTYPE HTML>
2 <html>
3
4
<head>
<title>Ejemplo de pgina dinmica</title>
</head>
<body>
7
8
9
10
11
12
13
14
15
16
la
temperatura
es
de
".$temperatura."
?>
</body>
</html>
Cmo lo hacen?
Simplificando mucho es bsicamente esto: disponen de unas gigantescas bases
de datos con las pginas web que el buscador ha visitado previamente. El
buscador indexa cada una de estas pginas (es decir, determina un largo conjunto
de palabras clave afines a su contenido) y guarda esta informacin en la base de
datos.
La pgina web de resultados de la bsqueda a la que accede el usuario cuando
busca es siempre la misma, pero cada vez que accede a ella viaja como
parmetro (como informacin que recibe el servidor web) la palabra o frase de su
bsqueda concreta y esa pgina contiene un trozo de cdigo que toma ese
parmetro y lo procesa.
tablas de una base de datos (que es algo bastante sencillo), poco ms. Y slo si
necesitas almacenar y procesar datos en tus desarrollos, en la gran mayora de
los casos no lo necesitars hacer nada con bases de datos.
En cualquier caso, quiero recalcar que SQL es tambin un lenguaje bastante
asequible al nivel que te puede hacer falta.
Echa un vistazo a este ejemplo consulta:
Concretemos el ejemplo:
Imagnate el tpico escenario de que has dado con un tema WordPress del
repositorio gratuito de WordPress que te gusta, pero tiene el tpico defecto de
estos temas: no puedes personalizar casi nada en la configuracin del tema y es
que no te gusta nada ni el tipo de letra del texto, ni su tamao y no hay ninguna
opcin por ningn lado para meterle mano a esto.
Pues bien, si aprendes CSS, descubrirs que solucionar este problema esttico (y
prcticamente cualquier otro) est tirado porque puedes crear una hoja de estilos
que modifique estas propiedades.
Esto resulta especialmente fcil si usas un plugin como Jetpack que dispone de un
mdulo CSS con un editor donde creas las reglas CSS con las propiedades que
quieres cambiar y listo.
Slo tienes que averiguar cules son las reglas originales que usa ese tema y
modificar las propiedades que te interesen en tus reglas sustitutas. Averiguarlas es
bastante fcil usando las herramientas de las que disponen los navegadores
habituales:
En definitiva, aunque ahora mismo lo que puedas ver en el vdeo te parecer
chino, si aprendes un poco de CSS, vers que es bastante sencillo.
Y la regla que tengas que editar en el mdulo CSS de Jetpack tendr una pinta
parecida a esto:
1 .entry-content p {
2 font-family: Open Sans, sans-serif;
3 font-size: 18px;
4}
Te has fijado en qu tontera se ha convertido una tarea que sin saber programar
pareca que era un callejn sin salida?
Programar en WordPress con PHP
Estando hecho WordPress en PHP y pudiendo acceder a sin restricciones a su
cdigo (que son los ficheros .php que instalas en tu hosting), es muy tpico que la
gente que empieza a hacer sus primeros pinitos en PHP empiece a toquetear de
Simplemente decirte que es muy fcil empezar a hacer plugins sencillos, aunque
hacer plugins avanzados s que te va a requerir un conocimiento ms profundo
del API de plugins de WordPress.
En mi caso estoy usando en este momento un total de ocho plugins propios. Uno
de ellos es el plugin para las cajitas de suscripcin a la lista de correo y el
correspondiente popup. Otro ejemplo es la cajita para buscar dentro del blog que
puedes ver en la pgina home y despus de las cajitas de autor en todas las
pginas y otro el que aade el botn de Twitter en los comentarios.
Y dentro de poco vers en funcionamiento un plugin de desarrollo propio muy
gordo con el que estrenaremos una parte completamente nueva y muy
importante dentro de Ciudadano 2.0 y que ser algo bastante especial que no
existe como tal que yo sepa en otros sitios de nuestro nicho :)
Temas hijos
El ltimo ejemplo de casos tpicos de programacin WordPress es el caso de los
temas hijo que ya mencion anteriormente.
Es un mecanismo muy elegante de WordPress para poder crear temas WordPress
personalizados que se basen en otro tema (el tema padre) y permitan modificarlo
a discrecin sin el riesgo de verse afectados por una actualizacin del tema padre
como ocurra en nuestro ejemplo de tocar directamente el cdigo de un tema
WordPress sin respetar la buena prctica de crear un tema hijo para ello.
Crear la plantilla bsica para un tema hijo WordPress es increblemente fcil. Es
una hoja de estilo con nombre style.css con un comentario con esta estructura de
campos en las primeras lneas:
1 /*
2
Version: 0.5.9
Template: genesis
8
Tags: black, orange, white, one-column, two-columns, three-columns, leftsidebar, right-sidebar, responsive-layout, custom-menu, full-width-template, rtl10
language-support, sticky-post, theme-options, threaded-comments, translation11 ready
*/
Y eso es todo!
Si creas un fichero .zip con una carpeta y dentro de ella el style.css, ya tendras un
tema hijo que podras instalar perfectamente como un tema hijo. No modificara
nada del tema padre, es decir, se vera igual que el tema padre, pero ya sera un
tema hijo operativo en toda regla!
A partir de aqu, si las nicas modificaciones que quieres hacer son a nivel
esttico, bastara con escribir las correspondientes reglas CSS despus del
comentario anterior.
Esto sera una alternativa, por as decirlo, ms profesional al ejemplo de arriba
donde conseguamos el mismo resultado con un enfoque totalmente diferente:
aadiendo CSS a nuestro tema con una funcionalidad que proporciona el plugin
Jetpack para ello. No obstante, la solucin de Jetpack no deja de ser tambin una
buena solucin.
Si quieres hacer cosas ms avanzadas, como el ejemplo anterior de meter una
foto del autor de un post en la cabecera de informacin del autor, entonces ya
habra que aadir cdigo PHP y entraramos en el desarrollo de temas hijos
avanzados que lgicamente ya es ms complejo y ha de respetar estrictamente
las reglas del API de WordPress para hacerse bien.
Conclusiones
Al final ha sido un post enorme y si nunca has visto nada de programacin o y
programacin WordPress en particular, quizs ahora te sientas un poco abrumado.
Normal, y es que he metido en un nico post temas que llenaran daran
sobradamente para un ao de carrera universitaria
Ahora, si bien es cierto que para poder considerarte un verdadero experto en
todos estos temas, hara falta un esfuerzo de ese calibre, se trata de un mundillo
muy agradecido en el que es muy fcil empezar a hacer cosas.
A unas pocas decenas de horas de estudio y prctica ya les vas a sacar mucho
partido, tan slo eso te puede cambiar la vida en tus posibilidades como blogger.
Te permitira hacerte con una pequea base de HTML y CSS y empezar a hacer
tus primeros pinitos que ya te permitiran hacer cosas como personalizar cualquier
tema WordPress a tu gusto.
Con unas pocas horas ms que inviertas en PHP ya sers capaz de hacer cosas
ms avanzadas como shortcodes para crear, por ejemplo, elementos a medida
como los que usa este blog para insertarlos en tus contenidos.
El siguiente paso sera aprender a programar con PHP contra bases de datos,
contra MySQL concretamente. Esto ya es un poco ms exigente, pero no hay que
tenerle miedo, despacio y con buena letra se puede.
Adems, te aseguro que si te atrae la parte tcnica del blogging y de WordPress,
te lo vas a pasar como un enano. Cuando empiezas a dominar un poquito todo
esto, es algo muy divertido, bonito y gratificante.
De hecho, en mi caso, es as y muchas cosas se puede decir que las he hecho
ms por capricho personal y para pasar un buen rato que por motivos racionales,
como el caso de mis cajitas de suscripcin, por ejemplo. Podra haber usado
perfectamente un plugin como Thrive Leads y habra acabado mucho antes, pero
no me lo habra pasado tan bien :)
Y, por ltimo, de JavaScript puedes simplemente olvdate, no lo vas a necesitar, al
menos, al principio. Y cuando tengas un poco de prctica vers que gracias a
cosas como jQuery en este tema te darn todo el trabajo hecho.