SlideShare a Scribd company logo
1 of 35
Download to read offline
La potencia sin control no sirve de nada
claves para aprovechar el uso de WordPress
¡Hola! Soy Darío,
diseñadory maquetador front-end.
@DarioBF DaríoBalbontín
La potencia sin control no sirve de nada
claves para aprovechar el uso de WordPress
Usuarios, desarrolladores, diseñadores o consultores.
#WPEuskadi2015 dariobf.com
¿CONOCEMOSWORDPRESS?
#WPEuskadi2015 dariobf.com
¿CONOCEMOS ELVERDADERO
POTENCIALDEWORDPRESS?
¿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.
dariobf.com
OUTOFTHE BOX
#WPEuskadi2015
dariobf.com
GESTION DE
ADMINISTRACION SENCILLA
#WPEuskadi2015
dariobf.com
GESTION DE
ADMINISTRACION SENCILLA
#WPEuskadi2015
• 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
#WPEuskadi2015
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
#WPEuskadi2015
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()
dariobf.com
MOTOR DE CREACION DETEMAS
#WPEuskadi2015
+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
#WPEuskadi2015
dariobf.com
define(‘WP_CACHE’, true); + función para
gestionarlo.
Plugins:
– WP Super cache.
– W3 Total Cache.
CACHE
#WPEuskadi2015
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
#WPEuskadi2015
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
#WPEuskadi2015
¿Cómo aprovechamos tanta potencia?
Dyintryin	
  en	
  Flickr
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
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
#WPEuskadi2015
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
#WPEuskadi2015
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
#WPEuskadi2015
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
#WPEuskadi2015
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
#WPEuskadi2015
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
#WPEuskadi2015
¿TODOS?
https://www.flickr.com/photos/postmemes/16458104512
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
#WPEuskadi2015
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
#WPEuskadi2015
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
#WPEuskadi2015
<?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
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
#WPEuskadi2015
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
#WPEuskadi2015
<?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.
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
#WPEuskadi2015
¡Hola! Soy Darío,
diseñadory maquetador front-end.
@DarioBF DaríoBalbontín
¡ESKERRIK ASKO! ¿PREGUNTAS?
¯(ツ)/¯
#WPEuskadi2015

More Related Content

What's hot

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
Irontec
 
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
Iñaki Arenaza
 

What's hot (20)

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
 
Cómo crear plugins para Wordpress
Cómo crear plugins para WordpressCómo crear plugins para Wordpress
Cómo crear plugins para Wordpress
 
Carlos Pascual #WPvalladolid 2014
Carlos Pascual #WPvalladolid 2014Carlos Pascual #WPvalladolid 2014
Carlos Pascual #WPvalladolid 2014
 
Introducción a los Frameworks CSS
Introducción a los Frameworks CSSIntroducción a los Frameworks CSS
Introducción a los Frameworks CSS
 
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...
 
WordPress para programadores
WordPress para programadoresWordPress para programadores
WordPress para programadores
 
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
 
Mejora el rendimiento de tu WordPress [Javier Casares - @JavierCasares]
Mejora el rendimiento de tu WordPress [Javier Casares - @JavierCasares]Mejora el rendimiento de tu WordPress [Javier Casares - @JavierCasares]
Mejora el rendimiento de tu WordPress [Javier Casares - @JavierCasares]
 
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
 
Aplicar SEO a un desarrollo WordPress [Stephen De Winter - @estudiodos]
Aplicar SEO a un desarrollo WordPress [Stephen De Winter - @estudiodos]Aplicar SEO a un desarrollo WordPress [Stephen De Winter - @estudiodos]
Aplicar SEO a un desarrollo WordPress [Stephen De Winter - @estudiodos]
 
Taller de WordPress avanzado | #EBE11
Taller de WordPress avanzado | #EBE11Taller de WordPress avanzado | #EBE11
Taller de WordPress avanzado | #EBE11
 
Curso WordPress desde Cero, parte 1
Curso WordPress desde Cero, parte 1Curso WordPress desde Cero, parte 1
Curso WordPress desde Cero, parte 1
 
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
 
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...
 
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 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...
 
Bootstrap, un framework CSS
Bootstrap, un framework CSSBootstrap, un framework CSS
Bootstrap, un framework CSS
 
Cómo hacer tu página con WordPress
Cómo hacer tu página con WordPress Cómo hacer tu página con WordPress
Cómo hacer tu página con WordPress
 

Similar to WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprovechar el uso de WordPress

Similar to WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprovechar el uso de WordPress (20)

Ataque masivo a WordPress con ILLOWP
Ataque masivo a WordPress con ILLOWPAtaque masivo a WordPress con ILLOWP
Ataque masivo a WordPress con ILLOWP
 
20 claves de Seguridad WordPress
20 claves de Seguridad WordPress20 claves de Seguridad WordPress
20 claves de Seguridad WordPress
 
Webinar - Seguridad en WordPress
Webinar - Seguridad en WordPressWebinar - Seguridad en WordPress
Webinar - Seguridad en WordPress
 
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
 
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
 
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
 
Blinda tu WordPress y evitate disgustos
Blinda tu WordPress y evitate disgustosBlinda tu WordPress y evitate disgustos
Blinda tu WordPress y evitate disgustos
 
Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress
 
WordCamp Sevilla 2016 - Creación de un plugin con subida a WordPress.org
WordCamp Sevilla 2016 - Creación de un plugin con subida a WordPress.orgWordCamp Sevilla 2016 - Creación de un plugin con subida a WordPress.org
WordCamp Sevilla 2016 - Creación de un plugin con subida a WordPress.org
 
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
 
wp-cli
wp-cliwp-cli
wp-cli
 
Play2012
Play2012Play2012
Play2012
 
Buddypress: Social Networking, in a Box
Buddypress: Social Networking, in a BoxBuddypress: Social Networking, in a Box
Buddypress: Social Networking, in a Box
 
Guia word press
Guia word pressGuia word press
Guia word press
 
Presentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del MediterráneoPresentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del Mediterráneo
 
Reventando WordPress
Reventando WordPressReventando WordPress
Reventando WordPress
 
WHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESS
WHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESSWHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESS
WHITEPAPER ESET ESPAÑA – AUMENTADO LA SEGURIDAD DE WORDPRESS
 
Escalando WordPress
Escalando WordPressEscalando WordPress
Escalando WordPress
 
Evento de Partners SiteGround "Escalando WordPress"
Evento de Partners SiteGround "Escalando WordPress"Evento de Partners SiteGround "Escalando WordPress"
Evento de Partners SiteGround "Escalando WordPress"
 
Glosario de WordPress
Glosario de WordPressGlosario de WordPress
Glosario de WordPress
 

Recently uploaded

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Recently uploaded (11)

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
 
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
 
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
 
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.
 
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
 
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...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
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
 
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
 

WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprovechar el uso de WordPress

  • 1. La potencia sin control no sirve de nada claves para aprovechar el uso de WordPress
  • 2. ¡Hola! Soy Darío, diseñadory maquetador front-end. @DarioBF DaríoBalbontín
  • 3. La potencia sin control no sirve de nada claves para aprovechar el uso de WordPress
  • 4. Usuarios, desarrolladores, diseñadores o consultores. #WPEuskadi2015 dariobf.com ¿CONOCEMOSWORDPRESS?
  • 6. ¿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. dariobf.com OUTOFTHE BOX #WPEuskadi2015
  • 9. • 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 #WPEuskadi2015
  • 10. 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 #WPEuskadi2015
  • 11. 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() dariobf.com MOTOR DE CREACION DETEMAS #WPEuskadi2015
  • 12. +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 #WPEuskadi2015
  • 13. dariobf.com define(‘WP_CACHE’, true); + función para gestionarlo. Plugins: – WP Super cache. – W3 Total Cache. CACHE #WPEuskadi2015
  • 14. 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 #WPEuskadi2015
  • 15. 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 #WPEuskadi2015
  • 16. ¿Cómo aprovechamos tanta potencia? Dyintryin  en  Flickr
  • 17. 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
  • 18. 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 #WPEuskadi2015
  • 19. 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 #WPEuskadi2015
  • 20. 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 #WPEuskadi2015
  • 21. 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 #WPEuskadi2015
  • 22. 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 #WPEuskadi2015
  • 23. 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 #WPEuskadi2015
  • 25. 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 #WPEuskadi2015
  • 26. 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 #WPEuskadi2015
  • 27. 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 #WPEuskadi2015
  • 28. <?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
  • 29. <?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
  • 30. 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 #WPEuskadi2015
  • 31. 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 #WPEuskadi2015
  • 32. <?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
  • 33. <?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.
  • 34. 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 #WPEuskadi2015
  • 35. ¡Hola! Soy Darío, diseñadory maquetador front-end. @DarioBF DaríoBalbontín ¡ESKERRIK ASKO! ¿PREGUNTAS? ¯(ツ)/¯ #WPEuskadi2015