dariobf.com #WCBilbao
BUENAS PRACTICAS
EN EL DESARROLLO CON
WORDPRESS
DARIOBF
EXPERTO EN WORDPRESS #WCSantander
@DarioBF
dariobf.com #WCBilbao
¡Hola! Soy Darío,
diseñadory maquetador front-end.
@DarioBF
dariobf.com
DARIOBF
EXPERTO EN WORDPRESS
#WCSantander
dariobf.com #WCBilbao
Diseñador UI/UX
Maquetador Front-End
Especializado en WordPress
Desarrollador en ActualidadBlog
Formador
Consultor
OrganizadorWordCamp Santander
OrganizadorWPCantabria
Editor de traducciones es_ES
dariobf.com
DARIOBF
EXPERTO EN WORDPRESS
#WCSantander
dariobf.com #WCSevilla16
ANTES DE EMPEZAR
SIGUE LAS REGLAS
#WCSantander
Plugins Themes
dariobf.com #WCSevilla16
if ( is_admin() ) {
require_once('codigo_para_admin.php');
}else{
require_once(‘codigo_para_frontend.php’);
}
AL CÉSAR, LO QUE ES DEL CÉSAR
#WCSantander
dariobf.com #WCSevilla16
if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
wpcf7_enqueue_scripts();
}
if ( function_exists( 'wpcf7_enqueue_styles' ) ) {
wpcf7_enqueue_styles();
}
NO, NO LO NECESITAS
#WCSantander
dariobf.com #WCSevilla16
REMOVER, NO MEZCLAR
#WCSantander
Naming prefixes
O dicho de otra forma: añade prefijos únicos a tus
funciones
Cuando creas una función, añade un prefijo tal que si tu plugin
se llama “Mi pepino plugin”, todas las funciones empiecen por
el prefijo “mpp_” para evitar colisiones con el core, el theme y
otros plugins activados.
dariobf.com #WCSevilla16
NO A LOS CSRF
#WCSantander
Cross-Site Request Forgeries
Son peticiones no esperadas o duplicadas desde
tu propio sitio o -lo que es peor- desde otro sitio.
Acarrean cambios irreversibles en la base de datos, dañando tu
instalación.
Evítalo utilizando los nonce
dariobf.com #WCSevilla16
NO URLS HARDCODEADAS
#WCSantander
Si tienes que llamar a un fichero, utiliza las
funciones de WordPress para obtener la ruta de
tu theme o plugin.
No escribas la ruta relativa (ni la absoluta)
directamente en el código.
dariobf.com #WCSevilla16
NO REINVENTES LA RUEDA
#WCSantander
Utiliza la API de WordPress siempre que puedas.
El codex no muerde.
dariobf.com #WCSevilla16
DI NO AL AUTOLOAD
#WCSantander
Las opciones se guardan por defecto con
autoload, pero no todas lo necesitan.
update_option('mi_opcion',$mis_datos,'no');
dariobf.com #WCSevilla16
JUNTOS COMO HERMANOS
#WCSantander
Cuando hay un conjunto de opciones que
siempre se leen juntas, ¿por qué no guardarlas
juntas?
update_option('mi_opcion', array(
'a' => $mis_datos_a,
'b' => $mis_datos_b,
'c' => $mis_datos_c,
'd' => $mis_datos_d,
)
);
dariobf.com #WCSevilla16
LA CASA POR LOS
CIMIENTOS
#WCSantander
La base de un buen desarrollo
empieza con una estructura de
ficheros y carpetas sólida.
css (dir)
inc (dir)
js (dir)
languages (dir)
page-templates (dir)
404.php
archive.php
author.php
category.php
comments.php
content.php
content-aside.php
content-image.php
content-link.php
content-none.php
content-page.php
content-quote.php
content-status.php
editor-style-rtl.css
editor-style.css
footer.php
functions.php
header.php
image.php
index.php
page.php
rtl.css
screenshot.png
search.php
sidebar.php
sidebar-front.php
single.php
style.css
tag.php
dariobf.com #WCSevilla16
SÉ UN ARQUITECTO
#WCSantander
La arquitectura de información de tu sitio son las
paredes de tu casa.
Utiliza Custom Post Types, Metaboxes y todas las herramientas
que necesites para jerarquizar, organizar y representar tu
contenido de la forma más óptima para el proyecto web.
dariobf.com #WCSevilla16
PROCREA
#WCSantander
Es realmente importante que crees temas hijo
para mantener la integridad de tu sitio frente a
actualizaciones.
dariobf.com #WCSevilla16
PROCREA
#WCSantander
/*
Theme Name: Twenty Fifteen Child
Theme URI: http://example.com/twenty-fifteen-child/
Description: Twenty Fifteen Child Theme
Author: John Doe
Author URI: http://example.com
Template: twentyfifteen
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: light, dark, two-columns, right-sidebar, responsive-
layout, accessibility-ready
Text Domain: twenty-fifteen-child
*/
dariobf.com #WCSevilla16
PLUGINDEPENDENCIA
#WCSantander
Evita utilizar plugins siempre que puedas; cosas
como Custom Post Types, Metaboxes o consultas
personalizadas son realmente sencillas de hacer.
dariobf.com #WCBilbao
¡GRACIAS!
@DarioBF
dariobf.com
¿PREGUNTAS?
#WCSantander

Buenas prácticas en el desarrollo con WordPress - #WCSantander

  • 1.
    dariobf.com #WCBilbao BUENAS PRACTICAS ENEL DESARROLLO CON WORDPRESS DARIOBF EXPERTO EN WORDPRESS #WCSantander @DarioBF
  • 2.
    dariobf.com #WCBilbao ¡Hola! SoyDarío, diseñadory maquetador front-end. @DarioBF dariobf.com DARIOBF EXPERTO EN WORDPRESS #WCSantander
  • 3.
    dariobf.com #WCBilbao Diseñador UI/UX MaquetadorFront-End Especializado en WordPress Desarrollador en ActualidadBlog Formador Consultor OrganizadorWordCamp Santander OrganizadorWPCantabria Editor de traducciones es_ES dariobf.com DARIOBF EXPERTO EN WORDPRESS #WCSantander
  • 4.
    dariobf.com #WCSevilla16 ANTES DEEMPEZAR SIGUE LAS REGLAS #WCSantander Plugins Themes
  • 5.
    dariobf.com #WCSevilla16 if (is_admin() ) { require_once('codigo_para_admin.php'); }else{ require_once(‘codigo_para_frontend.php’); } AL CÉSAR, LO QUE ES DEL CÉSAR #WCSantander
  • 6.
    dariobf.com #WCSevilla16 if (function_exists( 'wpcf7_enqueue_scripts' ) ) { wpcf7_enqueue_scripts(); } if ( function_exists( 'wpcf7_enqueue_styles' ) ) { wpcf7_enqueue_styles(); } NO, NO LO NECESITAS #WCSantander
  • 7.
    dariobf.com #WCSevilla16 REMOVER, NOMEZCLAR #WCSantander Naming prefixes O dicho de otra forma: añade prefijos únicos a tus funciones Cuando creas una función, añade un prefijo tal que si tu plugin se llama “Mi pepino plugin”, todas las funciones empiecen por el prefijo “mpp_” para evitar colisiones con el core, el theme y otros plugins activados.
  • 8.
    dariobf.com #WCSevilla16 NO ALOS CSRF #WCSantander Cross-Site Request Forgeries Son peticiones no esperadas o duplicadas desde tu propio sitio o -lo que es peor- desde otro sitio. Acarrean cambios irreversibles en la base de datos, dañando tu instalación. Evítalo utilizando los nonce
  • 9.
    dariobf.com #WCSevilla16 NO URLSHARDCODEADAS #WCSantander Si tienes que llamar a un fichero, utiliza las funciones de WordPress para obtener la ruta de tu theme o plugin. No escribas la ruta relativa (ni la absoluta) directamente en el código.
  • 10.
    dariobf.com #WCSevilla16 NO REINVENTESLA RUEDA #WCSantander Utiliza la API de WordPress siempre que puedas. El codex no muerde.
  • 11.
    dariobf.com #WCSevilla16 DI NOAL AUTOLOAD #WCSantander Las opciones se guardan por defecto con autoload, pero no todas lo necesitan. update_option('mi_opcion',$mis_datos,'no');
  • 12.
    dariobf.com #WCSevilla16 JUNTOS COMOHERMANOS #WCSantander Cuando hay un conjunto de opciones que siempre se leen juntas, ¿por qué no guardarlas juntas? update_option('mi_opcion', array( 'a' => $mis_datos_a, 'b' => $mis_datos_b, 'c' => $mis_datos_c, 'd' => $mis_datos_d, ) );
  • 13.
    dariobf.com #WCSevilla16 LA CASAPOR LOS CIMIENTOS #WCSantander La base de un buen desarrollo empieza con una estructura de ficheros y carpetas sólida. css (dir) inc (dir) js (dir) languages (dir) page-templates (dir) 404.php archive.php author.php category.php comments.php content.php content-aside.php content-image.php content-link.php content-none.php content-page.php content-quote.php content-status.php editor-style-rtl.css editor-style.css footer.php functions.php header.php image.php index.php page.php rtl.css screenshot.png search.php sidebar.php sidebar-front.php single.php style.css tag.php
  • 14.
    dariobf.com #WCSevilla16 SÉ UNARQUITECTO #WCSantander La arquitectura de información de tu sitio son las paredes de tu casa. Utiliza Custom Post Types, Metaboxes y todas las herramientas que necesites para jerarquizar, organizar y representar tu contenido de la forma más óptima para el proyecto web.
  • 15.
    dariobf.com #WCSevilla16 PROCREA #WCSantander Es realmenteimportante que crees temas hijo para mantener la integridad de tu sitio frente a actualizaciones.
  • 16.
    dariobf.com #WCSevilla16 PROCREA #WCSantander /* Theme Name:Twenty Fifteen Child Theme URI: http://example.com/twenty-fifteen-child/ Description: Twenty Fifteen Child Theme Author: John Doe Author URI: http://example.com Template: twentyfifteen Version: 1.0.0 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: light, dark, two-columns, right-sidebar, responsive- layout, accessibility-ready Text Domain: twenty-fifteen-child */
  • 17.
    dariobf.com #WCSevilla16 PLUGINDEPENDENCIA #WCSantander Evita utilizarplugins siempre que puedas; cosas como Custom Post Types, Metaboxes o consultas personalizadas son realmente sencillas de hacer.
  • 18.