SlideShare a Scribd company logo
1 of 37
Download to read offline
Dyintryin	
  en	
  Flickr
WordPress como Framework
¡Hola! Soy Darío,
diseñadory maquetador front-end.
@DarioBF DaríoBalbontín
Usuarios, desarrolladores, diseñadores o consultores.
#WCBcn dariobf.com
¿CONOCEMOSWORDPRESS?
Usuarios, desarrolladores, diseñadores o consultores.
#WCBcn dariobf.com
¿NOS LIMITAMOSABLOGS?
Tenemos el framework de desarrollo web perfecto.
#WCBcn dariobf.com
La palabra inglesa "framework" (marco de trabajo) define, en
términos generales, un conjunto estandarizado de conceptos,
prácticas y criterios para enfocar un tipo de problemática
particular que sirve como referencia, para enfrentar y resolver
nuevos problemas de índole similar.
Wikipedia
¿QUÉ OFRECE UN FRAMEWORK?
#WCBcn dariobf.com
• Gestión de usuarios: alta, edición, registro...
• Sistema de plantillas.
• Completa personalización. Podemos modificar lo que
queramos. El framework es la base.
• Desarrollo rápido (¿o no?)
• Implementación de mejoras.
• Documentación y comunidad.
#WCBcn dariobf.com
¿ ?
¿QUÉ OFRECEWORDPRESS?
• Gestión de administración sencilla.
• Gestión y permisos de usuarios.
• Motor de creación de temas.
• Plugins.
• Caché.
• Registro de errores.
• Gestión de multimedia.
#WCBcn dariobf.com
OUTOFTHE BOX
#WCBcn dariobf.com
GESTION DE
ADMINISTRACION SENCILLA
#WCBcn dariobf.com
GESTION DE
ADMINISTRACION SENCILLA
#WCBcn
• Crear un equipo que gestione nuestro sitio.
• Administradores.
• Editores.
• Colaboradores.
• Suscriptores.
• ¿Y si se nos queda pequeño?
• Role Scooper - Press Permit Core
• Roles and Capabilities en Codex.
• add_role();
• remove_role();
• get_role();
• add_cap();
• remove_cap();
GESTIONYPERMISOS DE USUARIOS
#WCBcn dariobf.com
Plantillas.
– General.
– Autor.
– Categoría.
– Post (entrada) o página.
– Comentarios.
– Personalizadas (página de contacto,
mix de categorías…)
MOTOR DE CREACION DETEMAS
WordPress nos facilita:
– - Campos personalizados
– (Custom fields, Meta box) y custom post types.
– Ejemplo: Fichas de productos.
– - Condicionales para saber qué estamos visualizando.
– is_page(), is_category(), is_front_page(), is_home()…
– - Formato de fechas.
– - Loop.
• WP_Query()
• query_posts()
#WCBcn dariobf.com
MOTOR DE CREACION DETEMAS
+30.000 plugins.
Añadir funcionalidades
de forma rápida.
Actualizaciones
periódicas.
Alternativas. Si algo no
funciona lo cambias.
Ahorro de tiempo.
¿A qué coste?
PLUGINS, MODULARIZACION
#WCBcn dariobf.com
define(‘WP_CACHE’, true); + función para
gestionarlo.
Plugins:
– WP Super cache.
– W3 Total Cache.
CACHE
#WCBcn dariobf.com
Dispone de registro de errores.
Para activarlo, en wp-config.php:
//Activamos el registro de errores.
@ini_set(‘log_errors’, ‘On’);
@ini_set(‘display_errors’, ‘Off’);
//Dónde queremos que guarde el registro.
@ini_set(‘error_log’, ‘/directorio/destino/
errores_wordpress.log’);
REGISTRO DE ERRORES
#WCBcn dariobf.com
Ficheros para descarga (.doc, .pdf, .zip…)
Inserción de imágenes (selección de tamaño,
miniatura, alineación…)
Embebidos de vídeos sólo pegando el enlace (en
texto plano)
– YouTube, Vimeo, Hulu, Flickr, DailyMotion, Viddler, Blip.tv, TED
Talks, Educreations, Instagram, Vine, and Videolog. Más
información.
GESTION MULTIMEDIA
Aprovecha su potencia
¡y magnifícala!
Dyintryin	
  en	
  Flickr
#WCBcn dariobf.com
Permisos de ficheros correctos.
Configuración mínima de robots.txt
Mejora el .htaccess
Configura wp-config.php
Básicos de seguridad:
– - No utilizar usuario “admin” por defecto. Ni utilizar rol
administrador para tareas de creación de contenidos.
– - ¡Actualiza!
– - Desactiva el registro de usuarios salvo que sea necesario.
Estructura de enlaces.
– - En Ajustes à Enlaces permanentes.
– Recomendado /%postname%.html
– - Slug de etiquetas y categorías. (Actualizar robots.txt si se
cambia)
DESDE LAINSTALACION
#WCBcn dariobf.com
Sitemap: http://www.dominio.ext/sitemap.xml
User-Agent: *
Disallow: /*/feed/
Disallow: /*/trackback/
Disallow: /*/attachment/
Disallow: /author/
Disallow: /category/*/page/
Disallow: /category/*/feed/
Disallow: /tag/*/page/
Disallow: /tag/*/feed/
Disallow: /page/
Disallow: /comments/
Disallow: /xmlrpc.php
Disallow: /*?s=
robots.txt
DESDE LAINSTALACION II
#WCBcn dariobf.com
<files wp-config.php>
Order Allow,Deny
Deny from all
</files>
<files .htaccess>
Order Allow,Deny
Deny from all
</files>
<files readme.html>
Order Allow,Deny
Deny from all
</files>
.htaccess - Proteger ficheros delicados
DESDE LAINSTALACION III
#WCBcn dariobf.com
// El idioma de nuestro sitio
define('WPLANG', 'es_ES');
// Activo la caché de WordPress
define('WP_CACHE', true);
// Fuera las revisiones de post, no suelen gustarme porque
manchan mucho la base de datos.
define('WP_POST_REVISIONS', false);
// Intervalo de autoguardado, se puede reducir, pero mi
experiencia con 140 segundos es buena.
define('AUTOSAVE_INTERVAL',140);
// Enlace a la raíz del sitio
define('WP_SITEURL', 'http://www.example.com');
// Enlace a la raiz del sitio
define('WP_HOME', 'http://www.example.com');
wp-config.php - Configuraciones básicas
DESDE LAINSTALACION IV
#WCBcn dariobf.com
// Directorio base donde se conectará nuestro FTP
define('FTP_BASE', '/');
// Carpeta de contenidos
define('FTP_CONTENT_DIR', '/wp-content/');
// Carpeta de plugins
define('FTP_PLUGIN_DIR ', '/wp-content/plugins/');
// Usuario FTP, para no tener que estar introduciéndolo cada
vez que queramos instalar o actualizar algún plugin o WordPress
define('FTP_USER', 'ftpusuario');
// Contraseña del usuario FTP
define('FTP_PASS', 'ftpcontraseña');
// Servidor al que se conectará, localhost si es el mismo
servidor donde está instalado WordPress
define('FTP_HOST', 'localhost');
// Si usamos SSL cambiaremos false por true. Yo suelo conectar
por SSH.
define('FTP_SSL', false);
wp-config.php - Configuraciones básicas
DESDE LAINSTALACIONV
#WCBcn dariobf.com
• Akismet: Un antispam; si no te gusta este puedes buscar
algún otro, pero SI o SI debes tener uno instalado.
• EliminaCabeceras: Lo conocí por Javier Casares; elimina
cabeceras HTML que podrían comprometernos.
• Limit Login Attempts: Bloquea usuarios que fallan la
contraseña un número concreto de veces.
• WordPress Firewall 2: Evita inyecciones en los formularios,
ataques por URL y alguna cosilla más. No se actualiza
desde hace mucho.
• Acunetix WP Security: Añadi un toque extra a la seguridad;
oculta la versión de WordPress, protege contraseñas… Muy
útil.
• WordPress Database Backup: automatiza los respaldos de
tu base de datos y te los envía al correo.
PLUGINS RECOMENDADOS
#WCBcn dariobf.com
• Google XML Sitemaps: genera dinámicamente nuestro Sitemap
y lo envía a los buscadores para que indexen nuestro contenido.
• PubSubHubbub: Mejora la difusión de nuestros contenidos
enviándolo a otras redes.
• P3: Bueno para depurar errores en WordPress. Sólo activar
cuando falle algo.
• WP Super Cache: WordPress cachea mal (es mejorable) y con
WP Super cache lo que hacemos es gestionar la cache de una
manera más eficiente.
• All in One SEO Pack: No todo es Yoast.
• Jetpack: No es un imprescindible, pero ayuda a la difusión y
tiene herramientas muy chulas, como Photon (CDN de tus
imágenes en los servidores de wordpress.com)
• WP Optimize: No lo tengas siempre activado, basta con que lo
actives, le des un repaso a la base de datos y lo desactives.
PLUGINS RECOMENDADOS II
¿TODOS?
https://www.flickr.com/photos/postmemes/16458104512
#WCBcn dariobf.com
Tipos de entrada personalizados.
2 cosas a controlar:
– Etiquetas (labels) del menú.
– Declarar correctamente las taxonomías. Jerárquicas o no
jerárquicas.
Catálogos, portfolios, etc.
Toda la información
ELCONTENIDO
CUSTOM POSTTYPES
#WCBcn dariobf.com
Campos extra a nuestras páginas de edición.
– A todas o selectivamente.
$callback llama a la función que queramos.
Toda la información
<?php add_meta_box( $id, $title, $callback, $page, $context,
$priority, $callback_args ); ?>
ELCONTENIDO
METABOXES
#WCBcn dariobf.com
Una clase:
– Determina la consulta a realizar a la base de datos.
– Guarda este tipo de consultas frecuentes para
optimizar la carga de la página.
Magia en el loop de WordPress.
Seguridad:
– Previene ataques de inyección SQL.
Sencillez:
– No es necesario conocer en profundidad la base de
datos, ni sus relaciones.
ELCONTENIDO
WP_QUERY
<?php
if(have_posts()) :
while(have_posts()) :
the_post();
?>
<h1><?php the_title() ?></h1>
<div class='post-content'><?php the_content() ?></div>
<?php
endwhile;
else:
?>
Vaya, no hay entradas.
<?php
endif;
?>
Loop de WordPress por defecto
ELCONTENIDO
WP_QUERY
<?php
$args = array('cat' => 4);
$category_posts = new WP_Query($args);
if($category_posts->have_posts()) :
while($category_posts->have_posts()) :
$category_posts->the_post();
?>
<h1><?php the_title() ?></h1>
<div class='post-content'><?php the_content() ?></div>
<?php
endwhile;
else:
?>
Vaya, no hay entradas.
<?php
endif;
?>
Loop de WordPress con WP_Query
ELCONTENIDO
WP_QUERY
#WCBcn dariobf.com
Loop normal vs Loop WP_Query:
1.Construir la consulta: Con WP_Query hay que indicar
qué contenido queremos extraer de la base de datos.
2.Inicializar WP_Query y consultar.
3.Crear el loop.
4.Trabaja como siempre.
ELCONTENIDO
WP_QUERY
#WCBcn dariobf.com
1 - Construir la consulta: Con WP_Query hay
que indicar qué contenido queremos extraer
de la base de datos.
1. Controla los valores por defecto:
• post_per_page
• post_type
• post_status
• Más información.
ELCONTENIDO
WP_QUERY
<?php
$args = array('cat' => 4);
$category_posts = new WP_Query($args);
if($category_posts->have_posts()) :
while($category_posts->have_posts()) :
$category_posts->the_post();
?>
<h1><?php the_title() ?></h1>
<div class='post-content'><?php the_content() ?></div>
<?php
endwhile;
else:
?>
Vaya, no hay entradas.
<?php
endif;
?>
2 - Iniciar WP_Query y consultar.
ELCONTENIDO
WP_QUERY
<?php
$args = array('cat' => 4);
$category_posts = new WP_Query($args);
if($category_posts->have_posts()) :
while($category_posts->have_posts()) :
$category_posts->the_post();
?>
<h1><?php the_title() ?></h1>
<div class='post-content'><?php the_content() ?></div>
<?php
endwhile;
else:
?>
Vaya, no hay entradas.
<?php
endif;
?>
ELCONTENIDO
WP_QUERY
3 - Crear el Loop.
#WCBcn dariobf.com
4. Trabaja como siempre.
1. Añade tus etiquetas html, estructura o diseño.
Consejos:
No hagas consultas muy pesadas, sobretodo en
alojamientos compartidos.
– Más consultas a la base de datos = más consumo del
servidor.
– Siempre que puedas, utiliza la consulta por defecto de
WordPress y el motor de plantillas.
ELCONTENIDO
WP_QUERY
¡Hola! Soy Darío,
diseñadory maquetador front-end.
@DarioBF DaríoBalbontín
¡GRACIAS! ¿PREGUNTAS?
#WCBcn
¯(ツ)/¯

More Related Content

What's hot

Tus themes con flexbox son más responsive - DarioBF
Tus themes con flexbox son más responsive - DarioBFTus themes con flexbox son más responsive - DarioBF
Tus themes con flexbox son más responsive - DarioBFDarío BF
 
Gestión de información con WordPress para no programadores - WordCamp Santa...
Gestión de información con WordPress para no programadores - WordCamp Santa...Gestión de información con WordPress para no programadores - WordCamp Santa...
Gestión de información con WordPress para no programadores - WordCamp Santa...Alvaro Gómez Velasco
 
Curso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressCurso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressIrontec
 
Monta WordPress en tu empresa
Monta WordPress en tu empresaMonta WordPress en tu empresa
Monta WordPress en tu empresaIñaki Arenaza
 
WordPress para programadores
WordPress para programadoresWordPress para programadores
WordPress para programadoreswpargentina
 
Taller de WordPress avanzado | #EBE11
Taller de WordPress avanzado | #EBE11Taller de WordPress avanzado | #EBE11
Taller de WordPress avanzado | #EBE11Rafael Poveda
 
Móntate un sitio web completo con WordPress en 4 horas
Móntate un sitio web completo con WordPress en 4 horasMóntate un sitio web completo con WordPress en 4 horas
Móntate un sitio web completo con WordPress en 4 horasIñaki Arenaza
 
Introducción a los Frameworks CSS
Introducción a los Frameworks CSSIntroducción a los Frameworks CSS
Introducción a los Frameworks CSSLuis Miguel Martín
 
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 WordpressToni Padrell
 
Cómo crear plugins para Wordpress
Cómo crear plugins para WordpressCómo crear plugins para Wordpress
Cómo crear plugins para Wordpressralcocer
 
Curso WordPress desde Cero, parte 1
Curso WordPress desde Cero, parte 1Curso WordPress desde Cero, parte 1
Curso WordPress desde Cero, parte 1Sergio Nouvel Castro
 
Instalación Wordpress y woocommerce con xampp y migración de base de datos de...
Instalación Wordpress y woocommerce con xampp y migración de base de datos de...Instalación Wordpress y woocommerce con xampp y migración de base de datos de...
Instalación Wordpress y woocommerce con xampp y migración de base de datos de...Laura Colorado
 
Gestion y Administracion de WordPress con WP-CLI
Gestion y Administracion de WordPress con WP-CLIGestion y Administracion de WordPress con WP-CLI
Gestion y Administracion de WordPress con WP-CLIOscar Abad Folgueira
 
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...Arsys
 
Guia word press
Guia word pressGuia word press
Guia word pressivan1587
 

What's hot (20)

Tus themes con flexbox son más responsive - DarioBF
Tus themes con flexbox son más responsive - DarioBFTus themes con flexbox son más responsive - DarioBF
Tus themes con flexbox son más responsive - DarioBF
 
Webperf wordpress
Webperf wordpressWebperf wordpress
Webperf wordpress
 
Gestión de información con WordPress para no programadores - WordCamp Santa...
Gestión de información con WordPress para no programadores - WordCamp Santa...Gestión de información con WordPress para no programadores - WordCamp Santa...
Gestión de información con WordPress para no programadores - WordCamp Santa...
 
Curso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de WordpressCurso avanzado de programación y configuración de Wordpress
Curso avanzado de programación y configuración de Wordpress
 
Vistiendo a WordPress
Vistiendo a WordPressVistiendo a WordPress
Vistiendo a WordPress
 
Monta WordPress en tu empresa
Monta WordPress en tu empresaMonta WordPress en tu empresa
Monta WordPress en tu empresa
 
WordPress para programadores
WordPress para programadoresWordPress para programadores
WordPress para programadores
 
Taller de WordPress avanzado | #EBE11
Taller de WordPress avanzado | #EBE11Taller de WordPress avanzado | #EBE11
Taller de WordPress avanzado | #EBE11
 
Móntate un sitio web completo con WordPress en 4 horas
Móntate un sitio web completo con WordPress en 4 horasMóntate un sitio web completo con WordPress en 4 horas
Móntate un sitio web completo con WordPress en 4 horas
 
Introducción a los Frameworks CSS
Introducción a los Frameworks CSSIntroducción a los Frameworks CSS
Introducción a los Frameworks CSS
 
Carlos Pascual #WPvalladolid 2014
Carlos Pascual #WPvalladolid 2014Carlos Pascual #WPvalladolid 2014
Carlos Pascual #WPvalladolid 2014
 
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
 
Cómo crear plugins para Wordpress
Cómo crear plugins para WordpressCómo crear plugins para Wordpress
Cómo crear plugins para Wordpress
 
Curso WordPress desde Cero, parte 1
Curso WordPress desde Cero, parte 1Curso WordPress desde Cero, parte 1
Curso WordPress desde Cero, parte 1
 
Instalación Wordpress y woocommerce con xampp y migración de base de datos de...
Instalación Wordpress y woocommerce con xampp y migración de base de datos de...Instalación Wordpress y woocommerce con xampp y migración de base de datos de...
Instalación Wordpress y woocommerce con xampp y migración de base de datos de...
 
Gestion y Administracion de WordPress con WP-CLI
Gestion y Administracion de WordPress con WP-CLIGestion y Administracion de WordPress con WP-CLI
Gestion y Administracion de WordPress con WP-CLI
 
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor...
 
Guia word press
Guia word pressGuia word press
Guia word press
 
Los mejores plugins para Wordpress
Los mejores plugins para WordpressLos mejores plugins para Wordpress
Los mejores plugins para Wordpress
 
wp-cli
wp-cliwp-cli
wp-cli
 

Similar to Wordpress como framework - DarioBF en WordCamp Barcelona

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...Asociación Webmasters Cantabria
 
Seguridad en WordPress, fundamentos y mejores prácticas
Seguridad en WordPress, fundamentos y mejores prácticasSeguridad en WordPress, fundamentos y mejores prácticas
Seguridad en WordPress, fundamentos y mejores prácticasLucy Tomas
 
La seguridad en WordPress de la A a la Z
La seguridad en WordPress de la A a la ZLa seguridad en WordPress de la A a la Z
La seguridad en WordPress de la A a la Zwpbarcelona
 
Webinar - Seguridad en WordPress
Webinar - Seguridad en WordPressWebinar - Seguridad en WordPress
Webinar - Seguridad en WordPressArsys
 
Aplicar la seguridad en WordPress desde la selección de un hosting
Aplicar la seguridad en WordPress desde la selección de un hosting Aplicar la seguridad en WordPress desde la selección de un hosting
Aplicar la seguridad en WordPress desde la selección de un hosting José Conti Calveras
 
Aprende a crear desde cero una web para tu negocio - Raiola Networks
Aprende a crear desde cero una web para tu negocio - Raiola NetworksAprende a crear desde cero una web para tu negocio - Raiola Networks
Aprende a crear desde cero una web para tu negocio - Raiola NetworksRaiola Networks
 
Joomlacursonoviembre en pdf
Joomlacursonoviembre en pdfJoomlacursonoviembre en pdf
Joomlacursonoviembre en pdfÁngel Puente
 
Las claves para optimizar la seguridad de tu sitio WordPress
Las claves para optimizar la seguridad de tu sitio WordPressLas claves para optimizar la seguridad de tu sitio WordPress
Las claves para optimizar la seguridad de tu sitio WordPressIñaki Arenaza
 
Buddypress: Social Networking, in a Box
Buddypress: Social Networking, in a BoxBuddypress: Social Networking, in a Box
Buddypress: Social Networking, in a BoxIñaki Arenaza
 
Ataque masivo a WordPress con ILLOWP
Ataque masivo a WordPress con ILLOWPAtaque masivo a WordPress con ILLOWP
Ataque masivo a WordPress con ILLOWPQuantiKa14
 
Curso Blog Marketing con Wordpress 02 instalacion local
Curso Blog Marketing con Wordpress 02 instalacion localCurso Blog Marketing con Wordpress 02 instalacion local
Curso Blog Marketing con Wordpress 02 instalacion localDavid Vaquero
 
10 Claves para mejorar la seguridad de tu WP
10 Claves para mejorar la seguridad de tu WP10 Claves para mejorar la seguridad de tu WP
10 Claves para mejorar la seguridad de tu WPIñaki Arenaza
 
Joomla Curso Noviembre
Joomla Curso NoviembreJoomla Curso Noviembre
Joomla Curso Noviembrejomyto
 

Similar to Wordpress como framework - DarioBF en WordCamp Barcelona (20)

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...
 
Seguridad en WordPress, fundamentos y mejores prácticas
Seguridad en WordPress, fundamentos y mejores prácticasSeguridad en WordPress, fundamentos y mejores prácticas
Seguridad en WordPress, fundamentos y mejores prácticas
 
La seguridad en WordPress de la A a la Z
La seguridad en WordPress de la A a la ZLa seguridad en WordPress de la A a la Z
La seguridad en WordPress de la A a la Z
 
Webinar - Seguridad en WordPress
Webinar - Seguridad en WordPressWebinar - Seguridad en WordPress
Webinar - Seguridad en WordPress
 
Aplicar la seguridad en WordPress desde la selección de un hosting
Aplicar la seguridad en WordPress desde la selección de un hosting Aplicar la seguridad en WordPress desde la selección de un hosting
Aplicar la seguridad en WordPress desde la selección de un hosting
 
Reventando WordPress
Reventando WordPressReventando WordPress
Reventando WordPress
 
Manual php nuke
Manual php nukeManual php nuke
Manual php nuke
 
Manual php nuke
Manual php nukeManual php nuke
Manual php nuke
 
Aprende a crear desde cero una web para tu negocio - Raiola Networks
Aprende a crear desde cero una web para tu negocio - Raiola NetworksAprende a crear desde cero una web para tu negocio - Raiola Networks
Aprende a crear desde cero una web para tu negocio - Raiola Networks
 
Crear desde cero una Web con Wordpress
Crear desde cero una Web con WordpressCrear desde cero una Web con Wordpress
Crear desde cero una Web con Wordpress
 
Joomlacursonoviembre en pdf
Joomlacursonoviembre en pdfJoomlacursonoviembre en pdf
Joomlacursonoviembre en pdf
 
Las claves para optimizar la seguridad de tu sitio WordPress
Las claves para optimizar la seguridad de tu sitio WordPressLas claves para optimizar la seguridad de tu sitio WordPress
Las claves para optimizar la seguridad de tu sitio WordPress
 
Manual php nuke
Manual php nukeManual php nuke
Manual php nuke
 
Buddypress: Social Networking, in a Box
Buddypress: Social Networking, in a BoxBuddypress: Social Networking, in a Box
Buddypress: Social Networking, in a Box
 
Ataque masivo a WordPress con ILLOWP
Ataque masivo a WordPress con ILLOWPAtaque masivo a WordPress con ILLOWP
Ataque masivo a WordPress con ILLOWP
 
Curso Blog Marketing con Wordpress 02 instalacion local
Curso Blog Marketing con Wordpress 02 instalacion localCurso Blog Marketing con Wordpress 02 instalacion local
Curso Blog Marketing con Wordpress 02 instalacion local
 
Migraciones en WordPress
Migraciones en WordPressMigraciones en WordPress
Migraciones en WordPress
 
10 Claves para mejorar la seguridad de tu WP
10 Claves para mejorar la seguridad de tu WP10 Claves para mejorar la seguridad de tu WP
10 Claves para mejorar la seguridad de tu WP
 
Joomla Curso Noviembre
Joomla Curso NoviembreJoomla Curso Noviembre
Joomla Curso Noviembre
 
Wordpress
WordpressWordpress
Wordpress
 

Wordpress como framework - DarioBF en WordCamp Barcelona

  • 2. ¡Hola! Soy Darío, diseñadory maquetador front-end. @DarioBF DaríoBalbontín
  • 3. Usuarios, desarrolladores, diseñadores o consultores. #WCBcn dariobf.com ¿CONOCEMOSWORDPRESS?
  • 4. Usuarios, desarrolladores, diseñadores o consultores. #WCBcn dariobf.com ¿NOS LIMITAMOSABLOGS? Tenemos el framework de desarrollo web perfecto.
  • 5. #WCBcn dariobf.com La palabra inglesa "framework" (marco de trabajo) define, en términos generales, un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular que sirve como referencia, para enfrentar y resolver nuevos problemas de índole similar. Wikipedia
  • 6. ¿QUÉ OFRECE UN FRAMEWORK? #WCBcn dariobf.com • Gestión de usuarios: alta, edición, registro... • Sistema de plantillas. • Completa personalización. Podemos modificar lo que queramos. El framework es la base. • Desarrollo rápido (¿o no?) • Implementación de mejoras. • Documentación y comunidad.
  • 8. ¿QUÉ OFRECEWORDPRESS? • Gestión de administración sencilla. • Gestión y permisos de usuarios. • Motor de creación de temas. • Plugins. • Caché. • Registro de errores. • Gestión de multimedia. #WCBcn dariobf.com OUTOFTHE BOX
  • 11. #WCBcn • Crear un equipo que gestione nuestro sitio. • Administradores. • Editores. • Colaboradores. • Suscriptores. • ¿Y si se nos queda pequeño? • Role Scooper - Press Permit Core • Roles and Capabilities en Codex. • add_role(); • remove_role(); • get_role(); • add_cap(); • remove_cap(); GESTIONYPERMISOS DE USUARIOS
  • 12. #WCBcn dariobf.com Plantillas. – General. – Autor. – Categoría. – Post (entrada) o página. – Comentarios. – Personalizadas (página de contacto, mix de categorías…) MOTOR DE CREACION DETEMAS
  • 13. WordPress nos facilita: – - Campos personalizados – (Custom fields, Meta box) y custom post types. – Ejemplo: Fichas de productos. – - Condicionales para saber qué estamos visualizando. – is_page(), is_category(), is_front_page(), is_home()… – - Formato de fechas. – - Loop. • WP_Query() • query_posts() #WCBcn dariobf.com MOTOR DE CREACION DETEMAS
  • 14. +30.000 plugins. Añadir funcionalidades de forma rápida. Actualizaciones periódicas. Alternativas. Si algo no funciona lo cambias. Ahorro de tiempo. ¿A qué coste? PLUGINS, MODULARIZACION
  • 15. #WCBcn dariobf.com define(‘WP_CACHE’, true); + función para gestionarlo. Plugins: – WP Super cache. – W3 Total Cache. CACHE
  • 16. #WCBcn dariobf.com Dispone de registro de errores. Para activarlo, en wp-config.php: //Activamos el registro de errores. @ini_set(‘log_errors’, ‘On’); @ini_set(‘display_errors’, ‘Off’); //Dónde queremos que guarde el registro. @ini_set(‘error_log’, ‘/directorio/destino/ errores_wordpress.log’); REGISTRO DE ERRORES
  • 17. #WCBcn dariobf.com Ficheros para descarga (.doc, .pdf, .zip…) Inserción de imágenes (selección de tamaño, miniatura, alineación…) Embebidos de vídeos sólo pegando el enlace (en texto plano) – YouTube, Vimeo, Hulu, Flickr, DailyMotion, Viddler, Blip.tv, TED Talks, Educreations, Instagram, Vine, and Videolog. Más información. GESTION MULTIMEDIA
  • 18. Aprovecha su potencia ¡y magnifícala! Dyintryin  en  Flickr
  • 19. #WCBcn dariobf.com Permisos de ficheros correctos. Configuración mínima de robots.txt Mejora el .htaccess Configura wp-config.php Básicos de seguridad: – - No utilizar usuario “admin” por defecto. Ni utilizar rol administrador para tareas de creación de contenidos. – - ¡Actualiza! – - Desactiva el registro de usuarios salvo que sea necesario. Estructura de enlaces. – - En Ajustes à Enlaces permanentes. – Recomendado /%postname%.html – - Slug de etiquetas y categorías. (Actualizar robots.txt si se cambia) DESDE LAINSTALACION
  • 20. #WCBcn dariobf.com Sitemap: http://www.dominio.ext/sitemap.xml User-Agent: * Disallow: /*/feed/ Disallow: /*/trackback/ Disallow: /*/attachment/ Disallow: /author/ Disallow: /category/*/page/ Disallow: /category/*/feed/ Disallow: /tag/*/page/ Disallow: /tag/*/feed/ Disallow: /page/ Disallow: /comments/ Disallow: /xmlrpc.php Disallow: /*?s= robots.txt DESDE LAINSTALACION II
  • 21. #WCBcn dariobf.com <files wp-config.php> Order Allow,Deny Deny from all </files> <files .htaccess> Order Allow,Deny Deny from all </files> <files readme.html> Order Allow,Deny Deny from all </files> .htaccess - Proteger ficheros delicados DESDE LAINSTALACION III
  • 22. #WCBcn dariobf.com // El idioma de nuestro sitio define('WPLANG', 'es_ES'); // Activo la caché de WordPress define('WP_CACHE', true); // Fuera las revisiones de post, no suelen gustarme porque manchan mucho la base de datos. define('WP_POST_REVISIONS', false); // Intervalo de autoguardado, se puede reducir, pero mi experiencia con 140 segundos es buena. define('AUTOSAVE_INTERVAL',140); // Enlace a la raíz del sitio define('WP_SITEURL', 'http://www.example.com'); // Enlace a la raiz del sitio define('WP_HOME', 'http://www.example.com'); wp-config.php - Configuraciones básicas DESDE LAINSTALACION IV
  • 23. #WCBcn dariobf.com // Directorio base donde se conectará nuestro FTP define('FTP_BASE', '/'); // Carpeta de contenidos define('FTP_CONTENT_DIR', '/wp-content/'); // Carpeta de plugins define('FTP_PLUGIN_DIR ', '/wp-content/plugins/'); // Usuario FTP, para no tener que estar introduciéndolo cada vez que queramos instalar o actualizar algún plugin o WordPress define('FTP_USER', 'ftpusuario'); // Contraseña del usuario FTP define('FTP_PASS', 'ftpcontraseña'); // Servidor al que se conectará, localhost si es el mismo servidor donde está instalado WordPress define('FTP_HOST', 'localhost'); // Si usamos SSL cambiaremos false por true. Yo suelo conectar por SSH. define('FTP_SSL', false); wp-config.php - Configuraciones básicas DESDE LAINSTALACIONV
  • 24. #WCBcn dariobf.com • Akismet: Un antispam; si no te gusta este puedes buscar algún otro, pero SI o SI debes tener uno instalado. • EliminaCabeceras: Lo conocí por Javier Casares; elimina cabeceras HTML que podrían comprometernos. • Limit Login Attempts: Bloquea usuarios que fallan la contraseña un número concreto de veces. • WordPress Firewall 2: Evita inyecciones en los formularios, ataques por URL y alguna cosilla más. No se actualiza desde hace mucho. • Acunetix WP Security: Añadi un toque extra a la seguridad; oculta la versión de WordPress, protege contraseñas… Muy útil. • WordPress Database Backup: automatiza los respaldos de tu base de datos y te los envía al correo. PLUGINS RECOMENDADOS
  • 25. #WCBcn dariobf.com • Google XML Sitemaps: genera dinámicamente nuestro Sitemap y lo envía a los buscadores para que indexen nuestro contenido. • PubSubHubbub: Mejora la difusión de nuestros contenidos enviándolo a otras redes. • P3: Bueno para depurar errores en WordPress. Sólo activar cuando falle algo. • WP Super Cache: WordPress cachea mal (es mejorable) y con WP Super cache lo que hacemos es gestionar la cache de una manera más eficiente. • All in One SEO Pack: No todo es Yoast. • Jetpack: No es un imprescindible, pero ayuda a la difusión y tiene herramientas muy chulas, como Photon (CDN de tus imágenes en los servidores de wordpress.com) • WP Optimize: No lo tengas siempre activado, basta con que lo actives, le des un repaso a la base de datos y lo desactives. PLUGINS RECOMENDADOS II
  • 27. #WCBcn dariobf.com Tipos de entrada personalizados. 2 cosas a controlar: – Etiquetas (labels) del menú. – Declarar correctamente las taxonomías. Jerárquicas o no jerárquicas. Catálogos, portfolios, etc. Toda la información ELCONTENIDO CUSTOM POSTTYPES
  • 28. #WCBcn dariobf.com Campos extra a nuestras páginas de edición. – A todas o selectivamente. $callback llama a la función que queramos. Toda la información <?php add_meta_box( $id, $title, $callback, $page, $context, $priority, $callback_args ); ?> ELCONTENIDO METABOXES
  • 29. #WCBcn dariobf.com Una clase: – Determina la consulta a realizar a la base de datos. – Guarda este tipo de consultas frecuentes para optimizar la carga de la página. Magia en el loop de WordPress. Seguridad: – Previene ataques de inyección SQL. Sencillez: – No es necesario conocer en profundidad la base de datos, ni sus relaciones. ELCONTENIDO WP_QUERY
  • 30. <?php if(have_posts()) : while(have_posts()) : the_post(); ?> <h1><?php the_title() ?></h1> <div class='post-content'><?php the_content() ?></div> <?php endwhile; else: ?> Vaya, no hay entradas. <?php endif; ?> Loop de WordPress por defecto ELCONTENIDO WP_QUERY
  • 31. <?php $args = array('cat' => 4); $category_posts = new WP_Query($args); if($category_posts->have_posts()) : while($category_posts->have_posts()) : $category_posts->the_post(); ?> <h1><?php the_title() ?></h1> <div class='post-content'><?php the_content() ?></div> <?php endwhile; else: ?> Vaya, no hay entradas. <?php endif; ?> Loop de WordPress con WP_Query ELCONTENIDO WP_QUERY
  • 32. #WCBcn dariobf.com Loop normal vs Loop WP_Query: 1.Construir la consulta: Con WP_Query hay que indicar qué contenido queremos extraer de la base de datos. 2.Inicializar WP_Query y consultar. 3.Crear el loop. 4.Trabaja como siempre. ELCONTENIDO WP_QUERY
  • 33. #WCBcn dariobf.com 1 - Construir la consulta: Con WP_Query hay que indicar qué contenido queremos extraer de la base de datos. 1. Controla los valores por defecto: • post_per_page • post_type • post_status • Más información. ELCONTENIDO WP_QUERY
  • 34. <?php $args = array('cat' => 4); $category_posts = new WP_Query($args); if($category_posts->have_posts()) : while($category_posts->have_posts()) : $category_posts->the_post(); ?> <h1><?php the_title() ?></h1> <div class='post-content'><?php the_content() ?></div> <?php endwhile; else: ?> Vaya, no hay entradas. <?php endif; ?> 2 - Iniciar WP_Query y consultar. ELCONTENIDO WP_QUERY
  • 35. <?php $args = array('cat' => 4); $category_posts = new WP_Query($args); if($category_posts->have_posts()) : while($category_posts->have_posts()) : $category_posts->the_post(); ?> <h1><?php the_title() ?></h1> <div class='post-content'><?php the_content() ?></div> <?php endwhile; else: ?> Vaya, no hay entradas. <?php endif; ?> ELCONTENIDO WP_QUERY 3 - Crear el Loop.
  • 36. #WCBcn dariobf.com 4. Trabaja como siempre. 1. Añade tus etiquetas html, estructura o diseño. Consejos: No hagas consultas muy pesadas, sobretodo en alojamientos compartidos. – Más consultas a la base de datos = más consumo del servidor. – Siempre que puedas, utiliza la consulta por defecto de WordPress y el motor de plantillas. ELCONTENIDO WP_QUERY
  • 37. ¡Hola! Soy Darío, diseñadory maquetador front-end. @DarioBF DaríoBalbontín ¡GRACIAS! ¿PREGUNTAS? #WCBcn ¯(ツ)/¯