SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
La	
  potencia	
  sin	
  control	
  no	
  sirve	
  de	
  nada,	
  
claves	
  para	
  aprovechar	
  el	
  uso	
  de	
  WordPress.
#WPDayCantabria
La	
  potencia	
  sin	
  control	
  no	
  sirve	
  de	
  nada,	
  
claves	
  para	
  aprovechar	
  el	
  uso	
  de	
  WordPress.
Usuarios, desarrolladores, diseñadores o consultores.	
  
¿Conocemos
WordPress?
Usuarios, desarrolladores, diseñadores o consultores.	
  
¿Conocemos
el verdadero potencial de WordPress?
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.
¿Qué nos ofrece WordPress?
Gestión de administración sencilla.
Gestión de administración sencilla.
Crear un equipo que gestione nuestro sitio.	
  
– Administradores.	
  
– Editores.	
  
– Colaboradores.	
  
¿Y si se nos queda pequeño?	
  
– Plugin: Role Scoper Press Permit Core.
– Roles and capabilities en Codex.	
  
• add_role()	
  
• remove_role()	
  
• get_role()	
  
• add_cap()	
  
• remove_cap()
Gestión y permisos de usuarios.
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()
Motor de creación de temas.
Plantillas.	
  
– General.	
  
– Autor.	
  
– Categoría.	
  
– Post (entrada) o página.	
  
– Comentarios.	
  
– Personalizadas (página de contacto, mix de
categorías…)
Motor de creación de temas.
+30.000 plugins.
Añadir funcionalidades de forma rápida.	
  
Actualizaciones periódicas.	
  
Alternativas. Si algo no funciona lo
cambias.	
  
Ahorro de tiempo. 	
  
Plugins, modularización
¿A qué coste?
define(‘WP_CACHE’, true); + función para gestionarlo.	
  
Plugins:	
  
– WP Super cache.	
  
– W3 Total Cache.
Cache.
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.
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.	
  
Gestión de multimedia.
Dyintryin	
  en	
  Flickr
¿Cómo aprovechamos tanta potencia?
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 la instalación
Robots.txt
Desde la instalación II
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=
.htaccess – proteger ficheros delicados
Desde la instalación III
<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>
.wp-config.php – configuraciones básicas
Desde la instalación IV
// 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');
Desde la instalación V
// 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);
• 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.
Recomendación de plugins - Seguridad
• 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.
Recomendación de plugins - Seguridad
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
El contenido – Custom post types
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
El contenido – Metaboxes
<?php add_meta_box( $id, $title, $callback, $page, $context, $priority, $callback_args ); ?>
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.
El contenido – WP_Query
Loop de WordPress por defecto:
El contenido – 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 con WP_Query:
El contenido – 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 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.
El contenido – WP_Query
1 - Construir la consulta: Con WP_Query hay que
indicar qué contenido queremos extraer de la base de
datos.	
  
– Controla los valores por defecto:	
  
• post_per_page
• post_type
• post_status
• Más info.	
  
El contenido – WP_Query
2 – Inicializar WP_Query y consultar:
El contenido – 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>
……..
3 – Crear el loop.
El contenido – 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>
……..
4. Trabaja como siempre.	
  
• 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.
El contenido – WP_Query
#WPDayCantabria

Más contenido relacionado

La actualidad más candente

WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...
WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...
WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...Darío BF
 
WordPress para programadores
WordPress para programadoresWordPress para programadores
WordPress para programadoreswpargentina
 
10 preguntas top WordPress
10 preguntas top WordPress10 preguntas top WordPress
10 preguntas top WordPressFernando Tellado
 
De Wordpress.com a Wordpress.org
De Wordpress.com a Wordpress.orgDe Wordpress.com a Wordpress.org
De Wordpress.com a Wordpress.orgralcocer
 
WPO - Murcia Meetup Day #MMD17
WPO - Murcia Meetup Day #MMD17WPO - Murcia Meetup Day #MMD17
WPO - Murcia Meetup Day #MMD17Javier Agudo
 
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 WordPressFernando Puente
 
Multiplica tu productividad usando un preprocesador de css
Multiplica tu productividad usando un preprocesador de cssMultiplica tu productividad usando un preprocesador de css
Multiplica tu productividad usando un preprocesador de cssLeonidas Esteban González
 
Seo On Page en WordPress - Ponencia para Meetup WordPress Murcia
Seo On Page en WordPress - Ponencia para Meetup WordPress MurciaSeo On Page en WordPress - Ponencia para Meetup WordPress Murcia
Seo On Page en WordPress - Ponencia para Meetup WordPress MurciaRamgon [LION 1K]
 
Clase sobre Optimización de Wordpress
Clase sobre Optimización de WordpressClase sobre Optimización de Wordpress
Clase sobre Optimización de WordpressJuan Ignacio Alberola
 
Cómo aprovechar mejor Wordpress - Daniel Monleón
Cómo aprovechar mejor Wordpress - Daniel Monleón Cómo aprovechar mejor Wordpress - Daniel Monleón
Cómo aprovechar mejor Wordpress - Daniel Monleón Comunica2 Campus Gandia
 
Desarollo rápido con Bootstrap
Desarollo rápido con BootstrapDesarollo rápido con Bootstrap
Desarollo rápido con Bootstrapbetabeers
 
Extender la funcionalidad de WordPress
Extender la funcionalidad de WordPressExtender la funcionalidad de WordPress
Extender la funcionalidad de WordPressFernando Puente
 
Optimiza tus webs a bajo costo - WCVenezuela2021
Optimiza tus webs a bajo costo - WCVenezuela2021Optimiza tus webs a bajo costo - WCVenezuela2021
Optimiza tus webs a bajo costo - WCVenezuela2021Fernando Puente
 
Taller WPO - Carga condicional de plugins
Taller WPO - Carga condicional de pluginsTaller WPO - Carga condicional de plugins
Taller WPO - Carga condicional de pluginsFernando Puente
 

La actualidad más candente (20)

WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...
WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...
WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove...
 
Caché y WordPress
Caché y WordPressCaché y WordPress
Caché y WordPress
 
WordPress para programadores
WordPress para programadoresWordPress para programadores
WordPress para programadores
 
10 preguntas top WordPress
10 preguntas top WordPress10 preguntas top WordPress
10 preguntas top WordPress
 
Los 10 mandamientos del WPO
Los 10 mandamientos del WPOLos 10 mandamientos del WPO
Los 10 mandamientos del WPO
 
De Wordpress.com a Wordpress.org
De Wordpress.com a Wordpress.orgDe Wordpress.com a Wordpress.org
De Wordpress.com a Wordpress.org
 
10 Factores SEO
10 Factores SEO 10 Factores SEO
10 Factores SEO
 
WPO - Murcia Meetup Day #MMD17
WPO - Murcia Meetup Day #MMD17WPO - Murcia Meetup Day #MMD17
WPO - Murcia Meetup Day #MMD17
 
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
 
Multiplica tu productividad usando un preprocesador de css
Multiplica tu productividad usando un preprocesador de cssMultiplica tu productividad usando un preprocesador de css
Multiplica tu productividad usando un preprocesador de css
 
Curso De Wordpress
Curso De WordpressCurso De Wordpress
Curso De Wordpress
 
Seo On Page en WordPress - Ponencia para Meetup WordPress Murcia
Seo On Page en WordPress - Ponencia para Meetup WordPress MurciaSeo On Page en WordPress - Ponencia para Meetup WordPress Murcia
Seo On Page en WordPress - Ponencia para Meetup WordPress Murcia
 
Clase sobre Optimización de Wordpress
Clase sobre Optimización de WordpressClase sobre Optimización de Wordpress
Clase sobre Optimización de Wordpress
 
Cómo aprovechar mejor Wordpress - Daniel Monleón
Cómo aprovechar mejor Wordpress - Daniel Monleón Cómo aprovechar mejor Wordpress - Daniel Monleón
Cómo aprovechar mejor Wordpress - Daniel Monleón
 
Desarollo rápido con Bootstrap
Desarollo rápido con BootstrapDesarollo rápido con Bootstrap
Desarollo rápido con Bootstrap
 
Extender la funcionalidad de WordPress
Extender la funcionalidad de WordPressExtender la funcionalidad de WordPress
Extender la funcionalidad de WordPress
 
Optimiza tus webs a bajo costo - WCVenezuela2021
Optimiza tus webs a bajo costo - WCVenezuela2021Optimiza tus webs a bajo costo - WCVenezuela2021
Optimiza tus webs a bajo costo - WCVenezuela2021
 
Taller WPO - Carga condicional de plugins
Taller WPO - Carga condicional de pluginsTaller WPO - Carga condicional de plugins
Taller WPO - Carga condicional de plugins
 
Las Herramientas de un Frontend
Las Herramientas de un FrontendLas Herramientas de un Frontend
Las Herramientas de un Frontend
 
Bootstrap 3.
Bootstrap 3.Bootstrap 3.
Bootstrap 3.
 

Similar a Gestión avanzada contenido WordPress CPT, metaboxes, WP_Query

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 BarcelonaDarío BF
 
Monta WordPress en tu empresa
Monta WordPress en tu empresaMonta WordPress en tu empresa
Monta WordPress en tu empresaIñ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
 
Guia word press
Guia word pressGuia word press
Guia word pressivan1587
 
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 @WPBilbaoDarío BF
 
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 wordpressMilton González
 
20 claves de Seguridad WordPress
20 claves de Seguridad WordPress20 claves de Seguridad WordPress
20 claves de Seguridad WordPressFernando Tellado
 
Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02Josefina Moratalla
 
Cómo Migrar Tu Web a WordPress
Cómo Migrar Tu Web a WordPressCómo Migrar Tu Web a WordPress
Cómo Migrar Tu Web a WordPressNelio Software
 
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
 
Cómo migrar tu web a WordPress (y no morir en el intento)
Cómo migrar tu web a WordPress (y no morir en el intento)Cómo migrar tu web a WordPress (y no morir en el intento)
Cómo migrar tu web a WordPress (y no morir en el intento)Nelio Software
 
Wordpress: El Framework desconocido
Wordpress: El Framework desconocidoWordpress: El Framework desconocido
Wordpress: El Framework desconocidoSamuel Rocha
 
Crear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde CeroCrear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde CeroEduardo Turiño
 
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
 
Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Asier Marqués
 

Similar a Gestión avanzada contenido WordPress CPT, metaboxes, WP_Query (20)

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
 
Monta WordPress en tu empresa
Monta WordPress en tu empresaMonta WordPress en tu empresa
Monta WordPress en tu empresa
 
Carlos Pascual #WPvalladolid 2014
Carlos Pascual #WPvalladolid 2014Carlos Pascual #WPvalladolid 2014
Carlos Pascual #WPvalladolid 2014
 
Buddypress: Social Networking, in a Box
Buddypress: Social Networking, in a BoxBuddypress: Social Networking, in a Box
Buddypress: Social Networking, in a Box
 
Webperf wordpress
Webperf wordpressWebperf wordpress
Webperf wordpress
 
Guia word press
Guia word pressGuia word press
Guia word press
 
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
 
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
 
20 claves de Seguridad WordPress
20 claves de Seguridad WordPress20 claves de Seguridad WordPress
20 claves de Seguridad WordPress
 
Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02
 
Cómo Migrar Tu Web a WordPress
Cómo Migrar Tu Web a WordPressCómo Migrar Tu Web a WordPress
Cómo Migrar Tu Web a 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
 
Cómo migrar tu web a WordPress (y no morir en el intento)
Cómo migrar tu web a WordPress (y no morir en el intento)Cómo migrar tu web a WordPress (y no morir en el intento)
Cómo migrar tu web a WordPress (y no morir en el intento)
 
Play2012
Play2012Play2012
Play2012
 
wp-cli
wp-cliwp-cli
wp-cli
 
Wordpress: El Framework desconocido
Wordpress: El Framework desconocidoWordpress: El Framework desconocido
Wordpress: El Framework desconocido
 
Servidor apache
Servidor apacheServidor apache
Servidor apache
 
Crear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde CeroCrear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde Cero
 
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
 
Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Código mantenible, en Wordpress.
Código mantenible, en Wordpress.
 

Gestión avanzada contenido WordPress CPT, metaboxes, WP_Query

  • 1. La  potencia  sin  control  no  sirve  de  nada,   claves  para  aprovechar  el  uso  de  WordPress.
  • 3. La  potencia  sin  control  no  sirve  de  nada,   claves  para  aprovechar  el  uso  de  WordPress.
  • 4. Usuarios, desarrolladores, diseñadores o consultores.   ¿Conocemos WordPress?
  • 5. Usuarios, desarrolladores, diseñadores o consultores.   ¿Conocemos el verdadero potencial de WordPress?
  • 6. 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. ¿Qué nos ofrece WordPress?
  • 9. Crear un equipo que gestione nuestro sitio.   – Administradores.   – Editores.   – Colaboradores.   ¿Y si se nos queda pequeño?   – Plugin: Role Scoper Press Permit Core. – Roles and capabilities en Codex.   • add_role()   • remove_role()   • get_role()   • add_cap()   • remove_cap() Gestión y permisos de usuarios.
  • 10. 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() Motor de creación de temas.
  • 11. Plantillas.   – General.   – Autor.   – Categoría.   – Post (entrada) o página.   – Comentarios.   – Personalizadas (página de contacto, mix de categorías…) Motor de creación de temas.
  • 12. +30.000 plugins. Añadir funcionalidades de forma rápida.   Actualizaciones periódicas.   Alternativas. Si algo no funciona lo cambias.   Ahorro de tiempo.   Plugins, modularización ¿A qué coste?
  • 13. define(‘WP_CACHE’, true); + función para gestionarlo.   Plugins:   – WP Super cache.   – W3 Total Cache. Cache.
  • 14. 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.
  • 15. 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.   Gestión de multimedia.
  • 16. Dyintryin  en  Flickr ¿Cómo aprovechamos tanta potencia?
  • 17. 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 la instalación
  • 18. Robots.txt Desde la instalación II 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=
  • 19. .htaccess – proteger ficheros delicados Desde la instalación III <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>
  • 20. .wp-config.php – configuraciones básicas Desde la instalación IV // 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');
  • 21. Desde la instalación V // 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);
  • 22. • 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. Recomendación de plugins - Seguridad
  • 23. • 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. Recomendación de plugins - Seguridad
  • 24.
  • 25. 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 El contenido – Custom post types
  • 26. 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 El contenido – Metaboxes <?php add_meta_box( $id, $title, $callback, $page, $context, $priority, $callback_args ); ?>
  • 27. 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. El contenido – WP_Query
  • 28. Loop de WordPress por defecto: El contenido – 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; ?>
  • 29. Loop de WordPress con WP_Query: El contenido – 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; ?>
  • 30. 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. El contenido – WP_Query
  • 31. 1 - Construir la consulta: Con WP_Query hay que indicar qué contenido queremos extraer de la base de datos.   – Controla los valores por defecto:   • post_per_page • post_type • post_status • Más info.   El contenido – WP_Query
  • 32. 2 – Inicializar WP_Query y consultar: El contenido – 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> ……..
  • 33. 3 – Crear el loop. El contenido – 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> ……..
  • 34. 4. Trabaja como siempre.   • 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. El contenido – WP_Query