SlideShare una empresa de Scribd logo
1 de 46
Creación 
de 
un 
plugin 
para 
WordPress 
Dani 
Reguera 
Mondragon 
Unibertsitatea 
dreguera@mondragon.edu 
h=ps://twi=er.com/dreguera 
h=ps://linkedin.com/in/danireguera
¿Qué 
es 
un 
plugin 
y 
para 
qué 
sirve? 
§ Los 
Plugins 
son 
herramientas 
que 
exKenden 
la 
funcionalidad 
del 
siKo 
desarrollado 
en 
WordPress 
§ Son 
fragmentos 
de 
código 
en 
PHP 
que 
interactúan 
con 
el 
kernel 
de 
WordPress 
para 
darnos 
otro 
Kpo 
de 
funcionalidades 
§ Existen 
plugins 
tanto 
de 
pago 
como 
gratuitos 
2
¿Qué 
es 
un 
plugin 
y 
para 
qué 
sirve? 
§ Existen 
infinidad 
de 
plugins 
a 
día 
de 
hoy 
tanto 
en 
repositorios 
oficiales 
como 
en 
otras 
fuentes 
externas. 
§ Repositorio 
oficial 
de 
WordPress: 
¨ h=ps://wordpress.org/plugins/ 
§ Existe 
gran 
variedad 
de 
los 
mismos, 
categorizados 
por 
temáKcas, 
desarrolladores, 
etc.. 
3
Resumiendo 
§ “Un 
plugin 
de 
WordPress 
es 
un 
programa, 
o 
un 
conjunto 
de 
una 
o 
varias 
funciones, 
escritas 
en 
el 
lenguaje 
de 
script 
PHP, 
que 
añaden 
un 
conjunto 
específico 
de 
caracterísKcas 
o 
servicios 
a 
una 
web 
WordPress, 
que 
pueden 
integrarse 
perfectamente 
en 
la 
web 
uKlizando 
puntos 
de 
acceso 
y 
métodos 
provistos 
por 
una 
Interfaz 
de 
Programación 
de 
Aplicaciones 
(API) 
WordPress.” 
Wordpress.org 
4
Primer 
paso 
para 
la 
creación 
de 
un 
plugin 
§ Lo 
primero 
que 
hay 
que 
hacer 
es 
buscar 
en 
los 
repositorios 
de 
WordPress 
para 
saber 
si 
alguien 
ya 
ha 
creado 
el 
plugin 
que 
se 
ajuste 
a 
sus 
necesidades. 
§ Si 
no 
hay 
ninguno 
que 
se 
ajuste 
a 
nuestras 
necesidades, 
entonces 
si 
que 
lo 
haremos 
desde 
cero. 
§ No 
hay 
que 
reinventar 
la 
rueda 
5
Nombre 
del 
plugin 
§ ¿Qué 
va 
a 
hacer 
nuestro 
plugin? 
§ Mirar 
en 
el 
repositorio 
oficial 
que 
no 
existe 
el 
mismo 
nombre. 
§ Mirar 
en 
Google/Yahoo 
que 
no 
existe 
un 
plugin 
con 
ese 
nombre. 
§ Pensar 
un 
nombre 
en 
función 
de 
lo 
que 
va 
a 
hacer. 
¨ P.ej: 
Plugin 
ejemplo 
de 
Garaia-­‐> 
Garaia 
Plugin 
§ A 
veces 
no 
somos 
muy 
creaKvos… 
6
Creando 
los 
archivos 
(Fichero 
único) 
§ El 
siguiente 
paso 
es 
crear 
un 
archivo 
PHP 
con 
un 
nombre, 
teniendo 
en 
cuenta 
el 
nombre 
que 
hemos 
elegido 
para 
el 
plugin. 
¨ Plugin 
Garaia 
-­‐> 
PluginGaraia.php 
§ ¡OJO! 
Los 
plugins 
se 
guardan 
en 
la 
carpeta 
/ 
wp-­‐conten/plugins 
por 
lo 
que 
no 
puede 
haber 
dos 
ficheros 
con 
el 
mismo 
nombre. 
7
Creando 
los 
archivos 
(Varios 
ficheros) 
§ Puede 
darse 
el 
caso 
que 
tengamos 
varios 
ficheros 
dentro 
del 
plugin, 
JS, 
CSS, 
imágenes… 
§ ¡OJO! 
Siempre 
ha 
de 
haber 
al 
menos 
un 
fichero 
PHP 
§ Si 
hay 
varios 
archivos, 
lo 
aconsejable 
es 
que 
la 
carpeta 
y 
el 
archivo 
php 
principal 
se 
llamen 
igual. 
¨ PluginGaraia: 
Nombre 
de 
la 
carpeta 
¨ PluginGaraia.php: 
Nombre 
del 
archivo 
php 
principal. 
§ En 
este 
caso 
también 
se 
guardan 
detron 
del 
directorio 
/wp-­‐content/plugins. 
8
Archivo 
readme.txt 
§ No 
solo 
si 
vamos 
a 
alojar 
nuestro 
plugin 
en 
WordPress, 
tenemos 
que 
crear 
un 
archivo 
readme 
donde 
damos 
la 
información 
necesaria 
de 
nuestro 
plugin. 
§ Es 
algo 
muy 
importante 
y 
de 
gran 
ayuda 
para 
dar 
a 
conocer 
nuestro 
desarrollo. 
§ Tenemos 
que 
seguir 
el 
formato 
que 
nos 
da 
WordPress: 
¨ h=ps://wordpress.org/plugins/about/readme.txt 
9
Archivo 
readme.txt 
10
Información 
estándar 
del 
plugin 
§ Las 
primeras 
líneas 
del 
fichero 
php 
han 
de 
contener 
la 
cabecera 
estándar 
de 
información 
del 
plugin 
§ Esta 
cabecera 
permite 
a 
WordPress 
reconocer 
que 
el 
plugin 
existe, 
y 
ponerlo 
en 
la 
pantalla 
de 
gesKón 
para 
que 
pueda 
ser 
acKvado, 
cargado 
y 
ejecutar 
sus 
funciones. 
§ Sin 
esta 
cabecera, 
el 
plugin 
no 
podrá 
ser 
acKvado 
ni 
funcionar. 
11
Información 
estándar 
del 
plugin 
§ El 
mínimo 
de 
información 
que 
WordPress 
necesita 
para 
reconocer 
su 
plugin 
es 
el 
nombre 
del 
mismo. 
§ El 
resto 
de 
la 
información 
se 
uKlizará 
para 
crear 
la 
tabla 
de 
plugin 
en 
la 
pantalla 
de 
gesKón 
de 
plugins. 
§ El 
orden 
de 
las 
líneas 
no 
es 
importante. 
12
Ejemplo 
de 
cabecera 
<?php 
/* 
Plugin Name: Garaia Plugin 
Plugin URI: http://www.mondragon.edu 
Description: Plugin de ejemplo para el curso de Garaia 
Enpresa Digitala 
Version: 1.0 
Author: Dani Reguera 
Author URI: http://github.com/dreguera 
License: GPL2 
*/ 
?> 
13
Licencia 
del 
plugin 
§ La 
mayoría 
de 
los 
plugins 
uKlizan 
licencia 
GPL2 
o 
licencias 
compaKbles 
con 
GPL2. 
§ Hay 
que 
tener 
en 
cuenta 
la 
licencia 
a 
la 
hora 
de 
manipular 
o 
instalar 
o 
reprogramar 
un 
plugin 
ya 
existente. 
§ Normalmente 
añadimos 
esas 
líneas 
en 
la 
cabecera. 
§ Para 
más 
info: 
¨ h=p://www.gnu.org/licenses/old-­‐licenses/gpl-­‐2.0.html 
14
Licencia 
del 
plugin 
<?php 
/* Copyright 2014 Dani_Reguera (email : dreguera@mondragon.edu) 
This program is free software; you can redistribute it and/or 
modify 
it under the terms of the GNU General Public License, version 2, 
as 
published by the Free Software Foundation. 
This program is distributed in the hope that it will be useful, 
but WITHOUT ANY WARRANTY; without even the implied warranty of 
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
GNU General Public License for more details. 
You should have received a copy of the GNU General Public License 
along with this program; if not, write to the Free Software 
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
02110-1301 USA 
*/ 
?> 
15
Licencia 
del 
plugin 
<?php 
/* Copyright 2014 Dani_Reguera (email : dreguera@mondragon.edu) 
This program is free software; you can redistribute it and/or 
modify 
it under the terms of the GNU General Public License, version 2, 
as 
published by the Free Software Foundation. 
This program is distributed in the hope that it will be useful, 
but WITHOUT ANY WARRANTY; without even the implied warranty of 
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
GNU General Public License for more details. 
You should have received a copy of the GNU General Public License 
along with this program; if not, write to the Free Software 
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
02110-1301 USA 
*/ 
?> 
16
Ganchos 
o 
hooks 
en 
WordPress 
§ ¿Qué 
son 
los 
hooks 
en 
WordPress? 
¨ Los 
hooks 
son 
parte 
de 
la 
forma 
en 
que 
WordPress 
está 
programado, 
y 
su 
principal 
función 
es 
la 
de 
permiKr 
cambiar 
prácKcamente 
cualquier 
aspecto 
de 
la 
plataforma 
sin 
necesidad 
de 
tocar 
su 
código 
fuente 
original. 
¨ Conseguimos 
interactuar 
con 
el 
core 
de 
WordPress 
sin 
tener 
que 
hacer 
desarrollos 
directos 
sobre 
el 
mismo. 
17
Ganchos 
o 
hooks 
en 
WordPress 
§ Los 
ganchos 
son 
extremadamente 
úKles 
para 
modificar 
los 
contenidos 
de 
tu 
página 
web. 
§ Los 
ganchos 
te 
permiten 
realizar 
cambios 
mucho 
más 
avanzados. 
§ Podemos 
uKlizar 
los 
ganchos 
sin 
necesidad 
de 
crear 
temas 
hijos 
o 
de 
modificarlos. 
§ Los 
hooks 
se 
implementan 
mediante 
funciones 
php 
por 
lo 
que 
hay 
que 
“picar” 
código 
18
¿Cómo 
funcionan 
los 
hooks 
en 
WordPress? 
§ La 
forma 
en 
que 
funcionan 
los 
ganchos 
de 
plugin 
es 
que 
en 
diferentes 
instantes 
mientras 
WordPress 
está 
corriendo, 
WordPress 
comprueba 
si 
algún 
plugin 
ha 
registrado 
alguna 
función 
para 
ejecutarse 
en 
ese 
preciso 
instante, 
y 
si 
es 
así, 
ejecuta 
dicha 
función. 
Estas 
funciones 
modifican 
el 
comportamiento 
del 
WordPress 
por 
defecto. 
§ Existen 
dos 
Kpos: 
¨ Filtros 
¨ Acciones 
19
WordPress 
hook 
database 
§ Listado 
de 
todos 
los 
hooks 
existentes 
dentro 
de 
las 
diferentes 
versiones 
de 
WordPress: 
¨ h=p://adambrown.info/p/wp_hooks 
20
Acciones 
§ Las 
Acciones 
son 
los 
hooks 
que 
lanza 
el 
núcleo 
de 
WordPress 
en 
puntos 
específicos 
durante 
la 
ejecución, 
o 
cuando 
ocurre 
un 
evento 
concreto. 
§ Nuestro 
plugin 
puede 
especificar 
que 
una 
o 
más 
de 
sus 
funciones 
PHP 
se 
ejecuten 
en 
esos 
puntos, 
uKlizando 
el 
API 
Acción. 
21
Filtros 
§ Los 
Filtros 
son 
los 
hooks 
que 
lanza 
el 
WordPress 
para 
modificar 
textos 
de 
varios 
Kpos 
antes 
de 
añadirlos 
a 
la 
base 
de 
datos 
o 
enviarlos 
a 
la 
pantalla 
del 
navegador. 
§ Nuestro 
plugin 
puede 
especificar 
que 
una 
o 
más 
de 
sus 
funciones 
PHP 
se 
ejecuten 
para 
modificar 
Kpos 
específicos 
de 
texto 
en 
esos 
momentos, 
uKlizando 
el 
API 
de 
Filtro. 
22
Acciones 
§ Las 
Acciones 
son 
disparadas 
por 
eventos 
específicos 
que 
Kenen 
lugar 
en 
WordPress, 
tales 
como 
publicar 
un 
post, 
cambiar 
una 
planKlla 
o 
mostrando 
una 
página 
del 
panel 
de 
administración. 
§ Nuestro 
plugin 
puede 
responder 
al 
evento 
ejecutando 
una 
función 
PHP. 
23
¿Cómo 
creamos 
una 
acción? 
§ Seguimos 
estos 
tres 
pasos: 
¨ Crear 
una 
función 
PHP, 
en 
el 
archivo 
de 
plugin, 
que 
podría 
ejecutarse 
cuando 
ocurre 
el 
evento. 
¨ Crear 
un 
Hook 
de 
acción 
en 
WordPress, 
llamando 
a 
add_acKon() 
¨ Poner 
la 
función 
PHP 
en 
un 
archivo 
de 
plugin, 
y 
acKvarlo. 
24
Veamos 
un 
pequeño 
ejemplo 
de 
acciones 
en 
WordPress 
§ Vamos 
a 
crear 
una 
función 
que 
envíe 
un 
mail 
a 
unos 
contactos 
cuando 
creemos 
un 
nuevo 
post: 
function avisar_amigos ($post_ID) { 
$amigos = ’dreguera@mondragon.edu,iarenaza@mondragon,edu'; 
mail($amigos, ”Nuevo post en mi blog", 
'Acabo de publicar algo en mi blog: http:// 
mukom.mondragon.edu/socialmedia'); 
return $post_ID; 
} 
25
Veamos 
un 
pequeño 
ejemplo 
de 
acciones 
en 
WordPress 
§ Ahora 
vamos 
a 
definir 
el 
hook, 
mediante 
una 
acción: 
¨ add_action ( 'nombre_del_hook', 'nombre_de_su_función', [prioridad], 
[argumentos_aceptados] ); 
§ nombre_del_hook 
¨ El 
nombre 
de 
un 
hook 
de 
acción 
provisto 
por 
WordPress, 
que 
indica 
con 
que 
evento 
ha 
de 
asociarse 
su 
función. 
§ nombre_de_su_función 
¨ El 
nombre 
de 
la 
función 
que 
queremos 
que 
se 
ejecute 
siguiendo 
al 
evento 
especificado 
por 
nombre_del_hook. 
Esta 
puede 
ser 
una 
función 
PHP 
estándar, 
una 
función 
presente 
en 
el 
núcleo 
de 
WordPress, 
o 
una 
función 
definida 
por 
nosotros 
en 
su 
archivo 
de 
plugin 
(p.ej: 
avisar_amigos) 
§ prioridad 
¨ Un 
número 
entero 
opcional 
que 
puede 
usarse 
para 
especificar 
el 
orden 
en 
el 
cual 
se 
ejecutarán 
las 
funciones 
asociadas 
con 
una 
acción 
parKcular 
(por 
defecto: 
10). 
Los 
número 
más 
pequeños 
se 
ejecutarán 
antes, 
y 
las 
funciones 
con 
la 
misma 
prioridad 
se 
ejecutarán 
en 
el 
orden 
en 
el 
que 
han 
sido 
añadidas 
a 
la 
acción. 
§ argumentos_aceptados 
¨ Un 
argumento 
de 
número 
entero, 
opcional, 
que 
define 
el 
número 
de 
argumentos 
que 
puede 
aceptar 
la 
función 
(por 
defecto 
1), 
úKl 
porque 
algunos 
hooks 
pueden 
pasar 
más 
de 
un 
argumento 
a 
su 
función 
§ En 
nuestro 
caso 
quedaría: 
¨ add_action(‘publish_post’,’avisar_amigos’); 
26
Veamos 
un 
pequeño 
ejemplo 
de 
acciones 
en 
WordPress 
§ Subimos 
el 
fichero 
a 
nuestra 
carpeta 
y 
lo 
acKvamos. 
§ Tanto 
la 
accion 
como 
la 
función 
que 
hemos 
definido 
deberán 
ir 
juntas 
en 
el 
fichero 
php 
para 
que 
funcione 
correctamente. 
§ Mas 
información 
sobre 
Acciones: 
¨ h=p://codex.wordpress.org/Plugin_API/ 
AcKon_Reference 
27
¿Cómo 
creamos 
un 
filtro? 
§ Los 
Filtros 
son 
funciones 
a 
través 
de 
las 
cuales 
WordPress 
hace 
pasar 
los 
datos, 
en 
momentos 
parKculares 
de 
la 
ejecución, 
justo 
antes 
de 
tomar 
alguna 
acción 
con 
ellos 
(tal 
como 
añadir 
la 
información 
a 
la 
base 
de 
datos 
o 
mandarla 
a 
la 
pantalla 
del 
navegador). 
§ Los 
filtros 
se 
sitúan 
entre 
la 
base 
de 
datos 
y 
el 
navegador 
(cuando 
WordPress 
añade 
nuevos 
post 
y 
comentarios 
a 
la 
base 
de 
datos); 
la 
mayor 
parte 
de 
las 
entradas 
y 
salidas 
en 
WordPress 
pasa 
a 
través 
de, 
al 
menos, 
un 
filtro. 
28
¿Cómo 
creamos 
un 
filtro? 
§ Pasos 
a 
seguir 
para 
crear 
un 
filtro: 
¨ Crear 
un 
afunción 
PHP 
que 
filtre 
los 
datos. 
¨ Hacer 
un 
hook 
al 
filtro 
en 
WordPress, 
llamando 
a 
add_filter() 
¨ Poner 
su 
función 
PHP 
en 
un 
archivo 
de 
plugin, 
y 
acKvarlo. 
29
Veamos 
un 
ejemplo 
de 
filtros 
en 
WordPress 
§ Vamos 
a 
crear 
un 
filtro 
que 
nos 
elimine 
palabras 
malsonantes 
de 
los 
comentarios 
y 
del 
contenido: 
function limpiar_palabras($content) { 
$censura = array(’gilipollas',’estúpido', 
['...’]); 
$content=str_ireplace($censura,'{censurado}', 
$content); 
return $content; 
} 
30
Veamos 
un 
ejemplo 
de 
filtros 
en 
WordPress 
§ Ahora 
definimos 
el 
hook 
mediante 
un 
filtro: 
¨ add_filter 
( 
'hook_name', 
'your_filter', 
[priority], 
[accepted_args] 
); 
§ hook_name 
¨ Nombre 
del 
filtro 
provido 
por 
WordPress 
que 
define 
cuando 
deberá 
ser 
ejecutad 
§ your_filter 
¨ Nombre 
de 
la 
funcion 
que 
queremos 
que 
se 
use 
para 
filtrar. 
Puede 
ser 
de 
WordPress 
o 
la 
que 
nos 
hemos 
generado. 
§ prioridad 
¨ Un 
número 
entero 
opcional 
que 
puede 
usarse 
para 
especificar 
el 
orden 
en 
el 
cual 
se 
ejecutarán 
las 
funciones 
asociadas 
con 
una 
acción 
parKcular 
(por 
defecto: 
10). 
Los 
número 
más 
pequeños 
se 
ejecutarán 
antes, 
y 
las 
funciones 
con 
la 
misma 
prioridad 
se 
ejecutarán 
en 
el 
orden 
en 
el 
que 
han 
sido 
añadidas 
a 
la 
acción. 
§ argumentos_aceptados 
¨ Un 
argumento 
de 
número 
entero, 
opcional, 
que 
define 
el 
número 
de 
argumentos 
que 
puede 
aceptar 
la 
función 
(por 
defecto 
1), 
úKl 
porque 
algunos 
hooks 
pueden 
pasar 
más 
de 
un 
argumento 
a 
su 
función 
§ En 
nuestro 
caso 
quedaría 
algo 
así: 
¨ add_filter('comment_text',’limpiar_palabras'); 
31
Veamos 
un 
ejemplo 
de 
filtros 
en 
WordPress 
§ Subimos 
el 
fichero 
a 
nuestra 
carpeta 
y 
lo 
acKvamos. 
§ Tanto 
el 
filtro 
como 
la 
función 
que 
hemos 
definido 
deberán 
ir 
juntas 
en 
el 
fichero 
php 
para 
que 
funcione 
correctamente. 
§ Mas 
información 
sobre 
Filtros: 
¨ h=p://codex.wordpress.org/Plugin_API/ 
Filter_Reference 
32
Filtros 
y 
acciones 
§ Los 
filtros 
y 
acciones 
no 
sólo 
nos 
sirven 
para 
la 
creación 
de 
plugins 
sino 
que 
también 
nos 
sirven 
para 
modificar 
WordPress 
§ Para 
ello 
todas 
las 
funiones 
deberíamos 
hacerlas 
en 
el 
archivo 
funcKons.php 
§ Recomendación: 
Crear 
temas 
hijos 
¨ h=p://www.wordpresseuskadi.com/jesus-­‐ 
amieiro/ 
33
Plugins 
vs 
Temas 
§ Si 
te 
decantas 
por 
la 
creación 
de 
plugins 
para 
la 
modificación: 
¨ Podemos 
gesKonar 
los 
plugins 
desde 
el 
backend 
de 
WordPress 
teniendo 
control 
total 
para 
si 
acKvación/desacKvación 
¨ Podemos 
encontrar 
los 
errores 
de 
una 
manera 
mas 
sencilla 
¨ Separamos 
la 
modificación 
del 
tema 
así 
lo 
tenemos 
independiente. 
34
Plugins 
vs 
Temas 
§ Si 
te 
decantas 
por 
modificar 
el 
tema 
a.k.a 
“modificar 
el 
funcKons.php”: 
¨ Cada 
vez 
que 
se 
actualice 
el 
tema 
en 
cuesKón, 
se 
actualiza 
el 
fichero 
funcKons.php 
osea 
que 
no 
es 
muy 
prácKco 
la 
verdad 
¨ Cada 
vez 
que 
queramos 
cambiar 
de 
tema 
nos 
deberíamos 
“migrar” 
el 
funcKons.php 
para 
no 
perder 
esa 
funcionalidad 
¨ Es 
buena 
opción 
si 
lo 
que 
queremos 
es 
dotar 
a 
un 
tema 
específico 
una 
funcionalidad 
específica, 
si 
no 
es 
así 
es 
mas 
conveniente 
desarrollar 
un 
plugin. 
35
Creación 
de 
un 
plugin 
simple 
§ Como 
hemos 
dicho 
nuestros 
plugins 
se 
guardan 
en 
la 
carpeta 
de 
/wp-­‐content/plugins 
§ Tenemos 
varias 
opciones: 
¨ Redactar 
nuestro 
plugin 
y 
luego 
subirlo 
via 
FTP 
¨ Crear 
el 
fichero 
directamente 
en 
el 
servidor. 
§ En 
nuestro 
caso 
como 
vamos 
a 
trabajar 
con 
una 
máquina 
virtual 
vamos 
hacer 
la 
segunda 
opción. 
36
¿Qué 
necesitamos? 
§ Una 
instalación 
de 
WordPress 
¨ h=ps://wordpress.org/download/ 
¨ Ejemplo 
de 
como 
instalar 
WP3.8 
• h=p://www.slideshare.net/dreguera/instalacin-­‐y-­‐ 
configuracin-­‐de-­‐wordpress-­‐38-­‐31329351 
§ Programa 
de 
edición 
de 
texto. 
¨ Yo 
aconsejo 
SublimeText2 
h=p://www.sublimetext.com/ 
pero 
puede 
ser 
otro 
con 
el 
que 
estemos 
familiarizados. 
37
Vamos 
a 
nuestro 
directorio 
plugins 
§ $ cd /var/www/wordpress/wp-content/plugins 
38
Vamos 
a 
crear 
el 
fichero 
garaiaplugin.php 
§ $ sudo touch garaiaplugin.php (necesitaremos 
permisos) 
39
Vamos 
a 
editarlo 
con 
las 
cabeceras 
§ $ sudo nano garaiaplugin.php 
40
Ahora 
ya 
debería 
aparecer 
en 
la 
opción 
plugins 
§ Nos 
logeamos 
en 
el 
backend 
y 
vamos 
a 
la 
opción 
plugins 
41
Vamos 
a 
añadir 
el 
código 
§ Vamos 
a 
desarrollar 
un 
plugin 
que 
nos 
va 
a 
generar 
la 
firma 
en 
cada 
post. 
42
Ahora 
acKvamos 
el 
plugin 
§ Seleccionamos 
el 
plugin 
y 
le 
damos 
a 
la 
opción 
acKvar 
43
Creamos 
un 
post 
44
Si 
vemos 
el 
post, 
habrá 
añadido 
el 
nombre 
45
Eskerrik 
asko! 
Dani 
Reguera 
Mondragon 
Unibertsitatea 
dreguera@mondragon.edu 
h=ps://twi=er.com/dreguera 
h=ps://linkedin.com/in/danireguera

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Html5
Html5Html5
Html5
 
Migraciones en WordPress
Migraciones en WordPressMigraciones en WordPress
Migraciones en WordPress
 
Wordpress
WordpressWordpress
Wordpress
 
HTTP/3, PHP 7.4 y otras novedades en WPO para WordPress
HTTP/3, PHP 7.4 y otras novedades en WPO para WordPressHTTP/3, PHP 7.4 y otras novedades en WPO para WordPress
HTTP/3, PHP 7.4 y otras novedades en WPO para WordPress
 
Wordpress
WordpressWordpress
Wordpress
 
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbaoDesarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
 
WordCamp Alicante 2017 - De HTML a WordPress
WordCamp Alicante 2017 - De HTML a WordPressWordCamp Alicante 2017 - De HTML a WordPress
WordCamp Alicante 2017 - De HTML a WordPress
 
Crea tus layouts con flexbox - WordCamp Bilbao
Crea tus layouts con flexbox - WordCamp Bilbao Crea tus layouts con flexbox - WordCamp Bilbao
Crea tus layouts con flexbox - WordCamp Bilbao
 
Diseño web
Diseño webDiseño web
Diseño web
 
Wordpress como framework - DarioBF en WordCamp Barcelona
Wordpress como framework - DarioBF en WordCamp BarcelonaWordpress como framework - DarioBF en WordCamp Barcelona
Wordpress como framework - DarioBF en WordCamp Barcelona
 
Taller de WordPress avanzado | #EBE11
Taller de WordPress avanzado | #EBE11Taller de WordPress avanzado | #EBE11
Taller de WordPress avanzado | #EBE11
 
Monta WordPress en tu empresa
Monta WordPress en tu empresaMonta WordPress en tu empresa
Monta WordPress en tu empresa
 
Alternativas de hosting para WordPress
Alternativas de hosting para WordPressAlternativas de hosting para WordPress
Alternativas de hosting para WordPress
 
Wpo para wordpress josé antonio esteve sáez - meetup wp murcia
Wpo para wordpress   josé antonio esteve sáez - meetup wp murciaWpo para wordpress   josé antonio esteve sáez - meetup wp murcia
Wpo para wordpress josé antonio esteve sáez - meetup wp murcia
 
WordCamp Bilbao - De HTML a WordPress - @DarioBF
WordCamp Bilbao - De HTML a WordPress - @DarioBFWordCamp Bilbao - De HTML a WordPress - @DarioBF
WordCamp Bilbao - De HTML a WordPress - @DarioBF
 
Extender la funcionalidad de WordPress
Extender la funcionalidad de WordPressExtender la funcionalidad de WordPress
Extender la funcionalidad de WordPress
 
File zilla cliente ftp
File zilla cliente ftpFile zilla cliente ftp
File zilla cliente ftp
 
Caché y WordPress
Caché y WordPressCaché y WordPress
Caché y WordPress
 
Taller WPO - Carga condicional de plugins
Taller WPO - Carga condicional de pluginsTaller WPO - Carga condicional de plugins
Taller WPO - Carga condicional de plugins
 
Curso Wordpress - Diseña tu Web en Wordpress
Curso Wordpress - Diseña tu Web en WordpressCurso Wordpress - Diseña tu Web en Wordpress
Curso Wordpress - Diseña tu Web en Wordpress
 

Destacado

Destacado (20)

Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress
 
Optimización de sitios web hechos con WordPress
Optimización de sitios web hechos con WordPressOptimización de sitios web hechos con WordPress
Optimización de sitios web hechos con WordPress
 
Evaluation 4 media a2
Evaluation 4  media a2Evaluation 4  media a2
Evaluation 4 media a2
 
El cine y la historia.
El cine y la historia.El cine y la historia.
El cine y la historia.
 
Our group pitch
Our group pitch Our group pitch
Our group pitch
 
Norton Vulcan - Esite
Norton Vulcan - EsiteNorton Vulcan - Esite
Norton Vulcan - Esite
 
Emprender y fracasar: lecciones y errores en primera persona (Araba Encounter...
Emprender y fracasar: lecciones y errores en primera persona (Araba Encounter...Emprender y fracasar: lecciones y errores en primera persona (Araba Encounter...
Emprender y fracasar: lecciones y errores en primera persona (Araba Encounter...
 
Sample essay on history and predicaments of latinos
Sample essay on history and predicaments of latinosSample essay on history and predicaments of latinos
Sample essay on history and predicaments of latinos
 
LinkedIn como herramienta de networking profesional - Parque Tecnológico de...
LinkedIn como herramienta de networking profesional  -  Parque Tecnológico de...LinkedIn como herramienta de networking profesional  -  Parque Tecnológico de...
LinkedIn como herramienta de networking profesional - Parque Tecnológico de...
 
Кадыров. доклад Ильи Яшина
Кадыров. доклад Ильи Яшина Кадыров. доклад Ильи Яшина
Кадыров. доклад Ильи Яшина
 
RTOS入門 タスク概要
RTOS入門 タスク概要RTOS入門 タスク概要
RTOS入門 タスク概要
 
Documents Required to File a Complaint in Consumer Court of India
Documents Required to File a Complaint in Consumer Court of IndiaDocuments Required to File a Complaint in Consumer Court of India
Documents Required to File a Complaint in Consumer Court of India
 
Geography of Western Canada
Geography of Western CanadaGeography of Western Canada
Geography of Western Canada
 
Acelera tu sitio WordPress WPO
Acelera tu sitio WordPress WPOAcelera tu sitio WordPress WPO
Acelera tu sitio WordPress WPO
 
Art in the middle ages.
Art in the middle ages.Art in the middle ages.
Art in the middle ages.
 
Creating a social media plan
Creating a social media planCreating a social media plan
Creating a social media plan
 
Visualizacion de datos avanzadas en WordPress
Visualizacion de datos avanzadas en WordPressVisualizacion de datos avanzadas en WordPress
Visualizacion de datos avanzadas en WordPress
 
Curso Básico de SEO impartido por iñaki-Lakarra en CEEI Burgos
Curso Básico de SEO impartido por iñaki-Lakarra en CEEI BurgosCurso Básico de SEO impartido por iñaki-Lakarra en CEEI Burgos
Curso Básico de SEO impartido por iñaki-Lakarra en CEEI Burgos
 
Aporte al proyecto de las áreas - Interdisciplinariedad
Aporte al proyecto de las áreas - InterdisciplinariedadAporte al proyecto de las áreas - Interdisciplinariedad
Aporte al proyecto de las áreas - Interdisciplinariedad
 
Bukalemun değişim yönetimi
Bukalemun değişim yönetimiBukalemun değişim yönetimi
Bukalemun değişim yönetimi
 

Similar a Creación de un plugin para WordPress

Similar a Creación de un plugin para WordPress (20)

Creación de un sitio web en wordpress
Creación de un sitio web en wordpressCreación de un sitio web en wordpress
Creación de un sitio web en wordpress
 
Gestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniterGestionar mis proyectos con ayuda de CodeIgniter
Gestionar mis proyectos con ayuda de CodeIgniter
 
nn
nnnn
nn
 
Programacion - Php
Programacion - PhpProgramacion - Php
Programacion - Php
 
Buddypress: Social Networking, in a Box
Buddypress: Social Networking, in a BoxBuddypress: Social Networking, in a Box
Buddypress: Social Networking, in a Box
 
Manualwordpress3
Manualwordpress3Manualwordpress3
Manualwordpress3
 
Manual de wordpress para novatos
Manual de wordpress para novatosManual de wordpress para novatos
Manual de wordpress para novatos
 
Crear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde CeroCrear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde Cero
 
CodeIgniter
CodeIgniterCodeIgniter
CodeIgniter
 
Curso wp enm 2a sesion
Curso wp enm 2a sesionCurso wp enm 2a sesion
Curso wp enm 2a sesion
 
Php y MySqul
Php y MySqul  Php y MySqul
Php y MySqul
 
PHP IUTE
PHP IUTEPHP IUTE
PHP IUTE
 
Plugin
PluginPlugin
Plugin
 
Manual de hosting scripts
Manual de hosting scriptsManual de hosting scripts
Manual de hosting scripts
 
Manual de cómo subir y actualizar un plugin propio en WordPress.org
Manual de cómo subir y actualizar un plugin propio en WordPress.orgManual de cómo subir y actualizar un plugin propio en WordPress.org
Manual de cómo subir y actualizar un plugin propio en WordPress.org
 
COMO USAR WORDPRESS
COMO USAR WORDPRESSCOMO USAR WORDPRESS
COMO USAR WORDPRESS
 
Manual Completo Php 5
Manual Completo Php 5Manual Completo Php 5
Manual Completo Php 5
 
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo...
 
Phpmyadmin
PhpmyadminPhpmyadmin
Phpmyadmin
 
Presentacion conoce los 30 mejores plugins para tu wordpress
Presentacion conoce los 30 mejores plugins para tu wordpressPresentacion conoce los 30 mejores plugins para tu wordpress
Presentacion conoce los 30 mejores plugins para tu wordpress
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 

Creación de un plugin para WordPress

  • 1. Creación de un plugin para WordPress Dani Reguera Mondragon Unibertsitatea dreguera@mondragon.edu h=ps://twi=er.com/dreguera h=ps://linkedin.com/in/danireguera
  • 2. ¿Qué es un plugin y para qué sirve? § Los Plugins son herramientas que exKenden la funcionalidad del siKo desarrollado en WordPress § Son fragmentos de código en PHP que interactúan con el kernel de WordPress para darnos otro Kpo de funcionalidades § Existen plugins tanto de pago como gratuitos 2
  • 3. ¿Qué es un plugin y para qué sirve? § Existen infinidad de plugins a día de hoy tanto en repositorios oficiales como en otras fuentes externas. § Repositorio oficial de WordPress: ¨ h=ps://wordpress.org/plugins/ § Existe gran variedad de los mismos, categorizados por temáKcas, desarrolladores, etc.. 3
  • 4. Resumiendo § “Un plugin de WordPress es un programa, o un conjunto de una o varias funciones, escritas en el lenguaje de script PHP, que añaden un conjunto específico de caracterísKcas o servicios a una web WordPress, que pueden integrarse perfectamente en la web uKlizando puntos de acceso y métodos provistos por una Interfaz de Programación de Aplicaciones (API) WordPress.” Wordpress.org 4
  • 5. Primer paso para la creación de un plugin § Lo primero que hay que hacer es buscar en los repositorios de WordPress para saber si alguien ya ha creado el plugin que se ajuste a sus necesidades. § Si no hay ninguno que se ajuste a nuestras necesidades, entonces si que lo haremos desde cero. § No hay que reinventar la rueda 5
  • 6. Nombre del plugin § ¿Qué va a hacer nuestro plugin? § Mirar en el repositorio oficial que no existe el mismo nombre. § Mirar en Google/Yahoo que no existe un plugin con ese nombre. § Pensar un nombre en función de lo que va a hacer. ¨ P.ej: Plugin ejemplo de Garaia-­‐> Garaia Plugin § A veces no somos muy creaKvos… 6
  • 7. Creando los archivos (Fichero único) § El siguiente paso es crear un archivo PHP con un nombre, teniendo en cuenta el nombre que hemos elegido para el plugin. ¨ Plugin Garaia -­‐> PluginGaraia.php § ¡OJO! Los plugins se guardan en la carpeta / wp-­‐conten/plugins por lo que no puede haber dos ficheros con el mismo nombre. 7
  • 8. Creando los archivos (Varios ficheros) § Puede darse el caso que tengamos varios ficheros dentro del plugin, JS, CSS, imágenes… § ¡OJO! Siempre ha de haber al menos un fichero PHP § Si hay varios archivos, lo aconsejable es que la carpeta y el archivo php principal se llamen igual. ¨ PluginGaraia: Nombre de la carpeta ¨ PluginGaraia.php: Nombre del archivo php principal. § En este caso también se guardan detron del directorio /wp-­‐content/plugins. 8
  • 9. Archivo readme.txt § No solo si vamos a alojar nuestro plugin en WordPress, tenemos que crear un archivo readme donde damos la información necesaria de nuestro plugin. § Es algo muy importante y de gran ayuda para dar a conocer nuestro desarrollo. § Tenemos que seguir el formato que nos da WordPress: ¨ h=ps://wordpress.org/plugins/about/readme.txt 9
  • 11. Información estándar del plugin § Las primeras líneas del fichero php han de contener la cabecera estándar de información del plugin § Esta cabecera permite a WordPress reconocer que el plugin existe, y ponerlo en la pantalla de gesKón para que pueda ser acKvado, cargado y ejecutar sus funciones. § Sin esta cabecera, el plugin no podrá ser acKvado ni funcionar. 11
  • 12. Información estándar del plugin § El mínimo de información que WordPress necesita para reconocer su plugin es el nombre del mismo. § El resto de la información se uKlizará para crear la tabla de plugin en la pantalla de gesKón de plugins. § El orden de las líneas no es importante. 12
  • 13. Ejemplo de cabecera <?php /* Plugin Name: Garaia Plugin Plugin URI: http://www.mondragon.edu Description: Plugin de ejemplo para el curso de Garaia Enpresa Digitala Version: 1.0 Author: Dani Reguera Author URI: http://github.com/dreguera License: GPL2 */ ?> 13
  • 14. Licencia del plugin § La mayoría de los plugins uKlizan licencia GPL2 o licencias compaKbles con GPL2. § Hay que tener en cuenta la licencia a la hora de manipular o instalar o reprogramar un plugin ya existente. § Normalmente añadimos esas líneas en la cabecera. § Para más info: ¨ h=p://www.gnu.org/licenses/old-­‐licenses/gpl-­‐2.0.html 14
  • 15. Licencia del plugin <?php /* Copyright 2014 Dani_Reguera (email : dreguera@mondragon.edu) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ ?> 15
  • 16. Licencia del plugin <?php /* Copyright 2014 Dani_Reguera (email : dreguera@mondragon.edu) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ ?> 16
  • 17. Ganchos o hooks en WordPress § ¿Qué son los hooks en WordPress? ¨ Los hooks son parte de la forma en que WordPress está programado, y su principal función es la de permiKr cambiar prácKcamente cualquier aspecto de la plataforma sin necesidad de tocar su código fuente original. ¨ Conseguimos interactuar con el core de WordPress sin tener que hacer desarrollos directos sobre el mismo. 17
  • 18. Ganchos o hooks en WordPress § Los ganchos son extremadamente úKles para modificar los contenidos de tu página web. § Los ganchos te permiten realizar cambios mucho más avanzados. § Podemos uKlizar los ganchos sin necesidad de crear temas hijos o de modificarlos. § Los hooks se implementan mediante funciones php por lo que hay que “picar” código 18
  • 19. ¿Cómo funcionan los hooks en WordPress? § La forma en que funcionan los ganchos de plugin es que en diferentes instantes mientras WordPress está corriendo, WordPress comprueba si algún plugin ha registrado alguna función para ejecutarse en ese preciso instante, y si es así, ejecuta dicha función. Estas funciones modifican el comportamiento del WordPress por defecto. § Existen dos Kpos: ¨ Filtros ¨ Acciones 19
  • 20. WordPress hook database § Listado de todos los hooks existentes dentro de las diferentes versiones de WordPress: ¨ h=p://adambrown.info/p/wp_hooks 20
  • 21. Acciones § Las Acciones son los hooks que lanza el núcleo de WordPress en puntos específicos durante la ejecución, o cuando ocurre un evento concreto. § Nuestro plugin puede especificar que una o más de sus funciones PHP se ejecuten en esos puntos, uKlizando el API Acción. 21
  • 22. Filtros § Los Filtros son los hooks que lanza el WordPress para modificar textos de varios Kpos antes de añadirlos a la base de datos o enviarlos a la pantalla del navegador. § Nuestro plugin puede especificar que una o más de sus funciones PHP se ejecuten para modificar Kpos específicos de texto en esos momentos, uKlizando el API de Filtro. 22
  • 23. Acciones § Las Acciones son disparadas por eventos específicos que Kenen lugar en WordPress, tales como publicar un post, cambiar una planKlla o mostrando una página del panel de administración. § Nuestro plugin puede responder al evento ejecutando una función PHP. 23
  • 24. ¿Cómo creamos una acción? § Seguimos estos tres pasos: ¨ Crear una función PHP, en el archivo de plugin, que podría ejecutarse cuando ocurre el evento. ¨ Crear un Hook de acción en WordPress, llamando a add_acKon() ¨ Poner la función PHP en un archivo de plugin, y acKvarlo. 24
  • 25. Veamos un pequeño ejemplo de acciones en WordPress § Vamos a crear una función que envíe un mail a unos contactos cuando creemos un nuevo post: function avisar_amigos ($post_ID) { $amigos = ’dreguera@mondragon.edu,iarenaza@mondragon,edu'; mail($amigos, ”Nuevo post en mi blog", 'Acabo de publicar algo en mi blog: http:// mukom.mondragon.edu/socialmedia'); return $post_ID; } 25
  • 26. Veamos un pequeño ejemplo de acciones en WordPress § Ahora vamos a definir el hook, mediante una acción: ¨ add_action ( 'nombre_del_hook', 'nombre_de_su_función', [prioridad], [argumentos_aceptados] ); § nombre_del_hook ¨ El nombre de un hook de acción provisto por WordPress, que indica con que evento ha de asociarse su función. § nombre_de_su_función ¨ El nombre de la función que queremos que se ejecute siguiendo al evento especificado por nombre_del_hook. Esta puede ser una función PHP estándar, una función presente en el núcleo de WordPress, o una función definida por nosotros en su archivo de plugin (p.ej: avisar_amigos) § prioridad ¨ Un número entero opcional que puede usarse para especificar el orden en el cual se ejecutarán las funciones asociadas con una acción parKcular (por defecto: 10). Los número más pequeños se ejecutarán antes, y las funciones con la misma prioridad se ejecutarán en el orden en el que han sido añadidas a la acción. § argumentos_aceptados ¨ Un argumento de número entero, opcional, que define el número de argumentos que puede aceptar la función (por defecto 1), úKl porque algunos hooks pueden pasar más de un argumento a su función § En nuestro caso quedaría: ¨ add_action(‘publish_post’,’avisar_amigos’); 26
  • 27. Veamos un pequeño ejemplo de acciones en WordPress § Subimos el fichero a nuestra carpeta y lo acKvamos. § Tanto la accion como la función que hemos definido deberán ir juntas en el fichero php para que funcione correctamente. § Mas información sobre Acciones: ¨ h=p://codex.wordpress.org/Plugin_API/ AcKon_Reference 27
  • 28. ¿Cómo creamos un filtro? § Los Filtros son funciones a través de las cuales WordPress hace pasar los datos, en momentos parKculares de la ejecución, justo antes de tomar alguna acción con ellos (tal como añadir la información a la base de datos o mandarla a la pantalla del navegador). § Los filtros se sitúan entre la base de datos y el navegador (cuando WordPress añade nuevos post y comentarios a la base de datos); la mayor parte de las entradas y salidas en WordPress pasa a través de, al menos, un filtro. 28
  • 29. ¿Cómo creamos un filtro? § Pasos a seguir para crear un filtro: ¨ Crear un afunción PHP que filtre los datos. ¨ Hacer un hook al filtro en WordPress, llamando a add_filter() ¨ Poner su función PHP en un archivo de plugin, y acKvarlo. 29
  • 30. Veamos un ejemplo de filtros en WordPress § Vamos a crear un filtro que nos elimine palabras malsonantes de los comentarios y del contenido: function limpiar_palabras($content) { $censura = array(’gilipollas',’estúpido', ['...’]); $content=str_ireplace($censura,'{censurado}', $content); return $content; } 30
  • 31. Veamos un ejemplo de filtros en WordPress § Ahora definimos el hook mediante un filtro: ¨ add_filter ( 'hook_name', 'your_filter', [priority], [accepted_args] ); § hook_name ¨ Nombre del filtro provido por WordPress que define cuando deberá ser ejecutad § your_filter ¨ Nombre de la funcion que queremos que se use para filtrar. Puede ser de WordPress o la que nos hemos generado. § prioridad ¨ Un número entero opcional que puede usarse para especificar el orden en el cual se ejecutarán las funciones asociadas con una acción parKcular (por defecto: 10). Los número más pequeños se ejecutarán antes, y las funciones con la misma prioridad se ejecutarán en el orden en el que han sido añadidas a la acción. § argumentos_aceptados ¨ Un argumento de número entero, opcional, que define el número de argumentos que puede aceptar la función (por defecto 1), úKl porque algunos hooks pueden pasar más de un argumento a su función § En nuestro caso quedaría algo así: ¨ add_filter('comment_text',’limpiar_palabras'); 31
  • 32. Veamos un ejemplo de filtros en WordPress § Subimos el fichero a nuestra carpeta y lo acKvamos. § Tanto el filtro como la función que hemos definido deberán ir juntas en el fichero php para que funcione correctamente. § Mas información sobre Filtros: ¨ h=p://codex.wordpress.org/Plugin_API/ Filter_Reference 32
  • 33. Filtros y acciones § Los filtros y acciones no sólo nos sirven para la creación de plugins sino que también nos sirven para modificar WordPress § Para ello todas las funiones deberíamos hacerlas en el archivo funcKons.php § Recomendación: Crear temas hijos ¨ h=p://www.wordpresseuskadi.com/jesus-­‐ amieiro/ 33
  • 34. Plugins vs Temas § Si te decantas por la creación de plugins para la modificación: ¨ Podemos gesKonar los plugins desde el backend de WordPress teniendo control total para si acKvación/desacKvación ¨ Podemos encontrar los errores de una manera mas sencilla ¨ Separamos la modificación del tema así lo tenemos independiente. 34
  • 35. Plugins vs Temas § Si te decantas por modificar el tema a.k.a “modificar el funcKons.php”: ¨ Cada vez que se actualice el tema en cuesKón, se actualiza el fichero funcKons.php osea que no es muy prácKco la verdad ¨ Cada vez que queramos cambiar de tema nos deberíamos “migrar” el funcKons.php para no perder esa funcionalidad ¨ Es buena opción si lo que queremos es dotar a un tema específico una funcionalidad específica, si no es así es mas conveniente desarrollar un plugin. 35
  • 36. Creación de un plugin simple § Como hemos dicho nuestros plugins se guardan en la carpeta de /wp-­‐content/plugins § Tenemos varias opciones: ¨ Redactar nuestro plugin y luego subirlo via FTP ¨ Crear el fichero directamente en el servidor. § En nuestro caso como vamos a trabajar con una máquina virtual vamos hacer la segunda opción. 36
  • 37. ¿Qué necesitamos? § Una instalación de WordPress ¨ h=ps://wordpress.org/download/ ¨ Ejemplo de como instalar WP3.8 • h=p://www.slideshare.net/dreguera/instalacin-­‐y-­‐ configuracin-­‐de-­‐wordpress-­‐38-­‐31329351 § Programa de edición de texto. ¨ Yo aconsejo SublimeText2 h=p://www.sublimetext.com/ pero puede ser otro con el que estemos familiarizados. 37
  • 38. Vamos a nuestro directorio plugins § $ cd /var/www/wordpress/wp-content/plugins 38
  • 39. Vamos a crear el fichero garaiaplugin.php § $ sudo touch garaiaplugin.php (necesitaremos permisos) 39
  • 40. Vamos a editarlo con las cabeceras § $ sudo nano garaiaplugin.php 40
  • 41. Ahora ya debería aparecer en la opción plugins § Nos logeamos en el backend y vamos a la opción plugins 41
  • 42. Vamos a añadir el código § Vamos a desarrollar un plugin que nos va a generar la firma en cada post. 42
  • 43. Ahora acKvamos el plugin § Seleccionamos el plugin y le damos a la opción acKvar 43
  • 45. Si vemos el post, habrá añadido el nombre 45
  • 46. Eskerrik asko! Dani Reguera Mondragon Unibertsitatea dreguera@mondragon.edu h=ps://twi=er.com/dreguera h=ps://linkedin.com/in/danireguera