Wordpress como framework - DarioBF en WordCamp Barcelona

Darío BF
Darío BFFront-End designer & developer
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
¯(ツ)/¯
1 of 37

Recommended

WPEuskadi 2015 - La potencia sin control no sirve de nada, claves para aprove... by
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
2.3K views35 slides
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao by
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
3.1K views94 slides
WordCamp Bilbao - De HTML a WordPress - @DarioBF by
WordCamp Bilbao - De HTML a WordPress - @DarioBFWordCamp Bilbao - De HTML a WordPress - @DarioBF
WordCamp Bilbao - De HTML a WordPress - @DarioBFDarío BF
1.3K views57 slides
Buenas prácticas en el desarrollo con WordPress - #WCSantander by
Buenas prácticas en el desarrollo con WordPress - #WCSantanderBuenas prácticas en el desarrollo con WordPress - #WCSantander
Buenas prácticas en el desarrollo con WordPress - #WCSantanderDarío BF
1.9K views18 slides
WordCamp Alicante 2017 - De HTML a WordPress by
WordCamp Alicante 2017 - De HTML a WordPressWordCamp Alicante 2017 - De HTML a WordPress
WordCamp Alicante 2017 - De HTML a WordPressDarío BF
3.6K views57 slides
Optimiza WordPress y a correr - WordCamp Cantabria 2015 - @DarioBF by
Optimiza WordPress y a correr - WordCamp Cantabria 2015 - @DarioBFOptimiza WordPress y a correr - WordCamp Cantabria 2015 - @DarioBF
Optimiza WordPress y a correr - WordCamp Cantabria 2015 - @DarioBFDarío BF
504 views36 slides

More Related Content

What's hot

Tus themes con flexbox son más responsive - DarioBF by
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
1.3K views42 slides
Webperf wordpress by
Webperf wordpressWebperf wordpress
Webperf wordpressLa Salle BCN
3.7K views68 slides
Gestión de información con WordPress para no programadores - WordCamp Santa... by
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
794 views43 slides
Curso avanzado de programación y configuración de Wordpress by
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
25.1K views123 slides
Vistiendo a WordPress by
Vistiendo a WordPressVistiendo a WordPress
Vistiendo a WordPressLorena Fernández
43.7K views62 slides
Monta WordPress en tu empresa by
Monta WordPress en tu empresaMonta WordPress en tu empresa
Monta WordPress en tu empresaIñaki Arenaza
2.4K views124 slides

What's hot(20)

Tus themes con flexbox son más responsive - DarioBF by Darío BF
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
Darío BF1.3K views
Webperf wordpress by La Salle BCN
Webperf wordpressWebperf wordpress
Webperf wordpress
La Salle BCN3.7K views
Gestión de información con WordPress para no programadores - WordCamp Santa... by Alvaro Gómez Velasco
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 by Irontec
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 25.1K views
Monta WordPress en tu empresa by Iñaki Arenaza
Monta WordPress en tu empresaMonta WordPress en tu empresa
Monta WordPress en tu empresa
Iñaki Arenaza2.4K views
WordPress para programadores by wpargentina
WordPress para programadoresWordPress para programadores
WordPress para programadores
wpargentina945 views
Taller de WordPress avanzado | #EBE11 by Rafael Poveda
Taller de WordPress avanzado | #EBE11Taller de WordPress avanzado | #EBE11
Taller de WordPress avanzado | #EBE11
Rafael Poveda4.4K views
Móntate un sitio web completo con WordPress en 4 horas by Iñaki Arenaza
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 Arenaza6K views
Curso Wordpress - Diseña tu Web en Wordpress by Toni Padrell
Curso Wordpress - Diseña tu Web en WordpressCurso Wordpress - Diseña tu Web en Wordpress
Curso Wordpress - Diseña tu Web en Wordpress
Toni Padrell2.5K views
Cómo crear plugins para Wordpress by ralcocer
Cómo crear plugins para WordpressCómo crear plugins para Wordpress
Cómo crear plugins para Wordpress
ralcocer9.4K views
Instalación Wordpress y woocommerce con xampp y migración de base de datos de... by Laura Colorado
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 Colorado7.1K views
Cómo evitar y solucionar los errores más habituales cuando trabajamos con Wor... by Arsys
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...
Arsys5.2K views
Guia word press by ivan1587
Guia word pressGuia word press
Guia word press
ivan1587938 views

Similar to Wordpress como framework - DarioBF en WordCamp Barcelona

La potencia sin control no sirve de nada, claves para aprovechar el uso de Wo... by
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
1.7K views35 slides
Seguridad en WordPress, fundamentos y mejores prácticas by
Seguridad en WordPress, fundamentos y mejores prácticasSeguridad en WordPress, fundamentos y mejores prácticas
Seguridad en WordPress, fundamentos y mejores prácticasLucy Tomas
2.8K views29 slides
La seguridad en WordPress de la A a la Z by
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
9K views37 slides
Webinar - Seguridad en WordPress by
Webinar - Seguridad en WordPressWebinar - Seguridad en WordPress
Webinar - Seguridad en WordPressArsys
644 views33 slides
Aplicar la seguridad en WordPress desde la selección de un hosting by
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
937 views59 slides
Reventando WordPress by
Reventando WordPressReventando WordPress
Reventando WordPressToni Escamilla Pardo
1.6K views113 slides

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

Seguridad en WordPress, fundamentos y mejores prácticas by Lucy Tomas
Seguridad en WordPress, fundamentos y mejores prácticasSeguridad en WordPress, fundamentos y mejores prácticas
Seguridad en WordPress, fundamentos y mejores prácticas
Lucy Tomas2.8K views
La seguridad en WordPress de la A a la Z by wpbarcelona
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
wpbarcelona9K views
Webinar - Seguridad en WordPress by Arsys
Webinar - Seguridad en WordPressWebinar - Seguridad en WordPress
Webinar - Seguridad en WordPress
Arsys644 views
Aplicar la seguridad en WordPress desde la selección de un hosting by José Conti Calveras
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
Aprende a crear desde cero una web para tu negocio - Raiola Networks by 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
Raiola Networks292 views
Joomlacursonoviembre en pdf by Ángel Puente
Joomlacursonoviembre en pdfJoomlacursonoviembre en pdf
Joomlacursonoviembre en pdf
Ángel Puente1.2K views
Las claves para optimizar la seguridad de tu sitio WordPress by Iñaki Arenaza
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
Iñaki Arenaza621 views
Buddypress: Social Networking, in a Box by Iñaki Arenaza
Buddypress: Social Networking, in a BoxBuddypress: Social Networking, in a Box
Buddypress: Social Networking, in a Box
Iñaki Arenaza2.4K views
Ataque masivo a WordPress con ILLOWP by QuantiKa14
Ataque masivo a WordPress con ILLOWPAtaque masivo a WordPress con ILLOWP
Ataque masivo a WordPress con ILLOWP
QuantiKa14802 views
Curso Blog Marketing con Wordpress 02 instalacion local by David Vaquero
Curso Blog Marketing con Wordpress 02 instalacion localCurso Blog Marketing con Wordpress 02 instalacion local
Curso Blog Marketing con Wordpress 02 instalacion local
David Vaquero1.2K views
10 Claves para mejorar la seguridad de tu WP by Iñaki Arenaza
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
Iñaki Arenaza676 views
Joomla Curso Noviembre by jomyto
Joomla Curso NoviembreJoomla Curso Noviembre
Joomla Curso Noviembre
jomyto820 views

Recently uploaded

Tecnologia (3).pdf by
Tecnologia (3).pdfTecnologia (3).pdf
Tecnologia (3).pdfnosi6702
7 views15 slides
MDE en la industria by
MDE en la industriaMDE en la industria
MDE en la industriaPedro J. Molina
24 views55 slides
MasterMind.pdf by
MasterMind.pdfMasterMind.pdf
MasterMind.pdfrtovarfernandez
18 views5 slides
Qué es el rodamiento hacia adelante.docx by
Qué es el rodamiento hacia adelante.docxQué es el rodamiento hacia adelante.docx
Qué es el rodamiento hacia adelante.docxFabianCarrillo31
10 views1 slide
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1 by
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1Angel Borroy López
6 views22 slides
Seguridad de Windows 11 by
Seguridad de Windows 11Seguridad de Windows 11
Seguridad de Windows 11cesardani28128
5 views7 slides

Recently uploaded(8)

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 ¯(ツ)/¯