introducción al desarrollo en wordpressindex-of.co.uk/various/seminario wordpress panda edition...

Post on 22-Aug-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introducción al desarrollo en WordPressGotardo González

martes 27 de septiembre de 11

WordPressIntroducción al desarrollo

PARTE ILa estructura de WordPress Instalación y configuración de WordPress.Seguridad en WordpressPlugins esencialesApariencia: themes y custom menus.

PARTE IIEditando un theme de WordPressAlgunos consejos de optimización

TaxonomíasCustom post types

martes 27 de septiembre de 11

Qué es Wordpress WordPress is web software you can use to

create a beautiful website or blog. We like to say that WordPress is both free and priceless

at the same time.

WordPress es una aplicación web de creación de sitios webs o blogs atractivos. Nos gusta la idea de

que Wordpress sea a la vez libre y gratis.

martes 27 de septiembre de 11

¿Por qué ?

Facilidad de uso Flexibilidad en el desarrollo

Facilidad de uso para el cliente final

martes 27 de septiembre de 11

martes 27 de septiembre de 11

INSTALACIÓN Y CONFIGURACIÓN

de WordPress

SO easyA caveman

can do itmartes 27 de septiembre de 11

Instalando WordPress • Descarga desde

http://es.wordpress.org/WordPress

• La instalación de Bitnamihttp://bitnami.org/es/stack/wordpress

martes 27 de septiembre de 11

Configuración básica • General: Título, membresía y hora del servidor.

• Writing: Activar XML-RPC.

• Conversación: Settings y listas.

• Multimedia: Image Size.

• Enlaces permanentes: friendly url.

martes 27 de septiembre de 11

LA ESTRUCTURA DE WORDPRESS

martes 27 de septiembre de 11

La base de datos

martes 27 de septiembre de 11

El árbol de directorios

martes 27 de septiembre de 11

Seguridad en

WordPress

martes 27 de septiembre de 11

Seguridad (I)• No utilizar wp_ como prefijo de las tablas.

• Proteger wp-config.php contra escriturachmod 644 wp-config.php

• Nombre del super usuario distinto de ‘admin’.

• Eliminar todos los ficheros de instalación, configuración y exportación./wp-admin/import.php/wp-admin/install.php/wp-admin/installer-helper.php/wp-admin/upgrade.php

martes 27 de septiembre de 11

Seguridad (II)• Desactiva y desinstala todos los plugins que no

estés utilizando

• No utilizar plugins para realizar copias de respaldo de la BD (ojo con wp-db-backup).

• Utiliza una cuenta de autor: no trabajes con todos los permisos (quizás quieras probar el plugin Role Manager)

• Cuida los permisos del usuario con el que accedes a la BD

• Priva de permisos al user_ID = 1.

martes 27 de septiembre de 11

Seguridad (III)• Protege los directorios con .htaccess

Order Allow,DenyDeny from all<Files ~ ".(css|jpe?g|png|gif|js)$">Allow from all</Files>

• Si administras tu blog desde LAN o VPN, no permitas el acceso desde otra máquina.<Location /wordpress/wp-admin/>Order deny,allowAllow from 192.168.1.27Deny from All

</Location>

martes 27 de septiembre de 11

Seguridad (IV) - Plugins• Escanea tu sitio con WP Exploit Scanner.

• Escanea tu sitio con WP Security Scan.

• Utiliza Replace WP Version.

• Si utilizas una versión anterior a WordPress 3.0 ejecuta Admin Renamer Extended.

NOTA: Echa un vistazo a http://blogsecurity.net/projects/secure-wp-whitepaper.pdf

martes 27 de septiembre de 11

Seguridad (IV) - Plugins• Escanea tu sitio con WP Exploit Scanner.

• Escanea tu sitio con WP Security Scan.

• Utiliza Replace WP Version.

• Si utilizas una versión anterior a WordPress 3.0 ejecuta Admin Renamer Extended.

NOTA: Echa un vistazo a http://blogsecurity.net/projects/secure-wp-whitepaper.pdf

martes 27 de septiembre de 11

PLUGINS ESENCIALES(o no)

martes 27 de septiembre de 11

Plugins - SEO y WA• All in One SEO Pack

• Google XML Sitemaps

• Google Analytics for Wordpress

• KB Robots.txt

• SEO Friendly Images

martes 27 de septiembre de 11

Plugins - Social Media• AddThis

• Twitter Tools

Plugins - Conversación• Comment Whitelist

martes 27 de septiembre de 11

Plugins - Mejoras• Thickbox

• Clean-Contact

• Nextgen Gallery

• WP Multiple Languages (de pago)

• WPtouch

• MCEComments

martes 27 de septiembre de 11

Plugins - Desarrollo• Exec-PHP

• Optimize DB

• WP-Syntax

martes 27 de septiembre de 11

APARIENCIA: Themes y Menús personalizados

martes 27 de septiembre de 11

Apariencia - Temas• Repositorios de themes

• Añadir theme en WordPress.

• press75.com

• themeforest.com

• Estructura de un tema

martes 27 de septiembre de 11

Apariencia• Themes

• Widgets

• Menús

• La web móvil: WP-Touch, MobilePress

martes 27 de septiembre de 11

Apariencia - un menú• Crear un menú personalizado.

• Cómo añadir un menú personalizado a un theme.

Registrar un nuevo menú en functions.php<?php register_nav_menu( 'footer', __( 'Footer Menu', 'twentyeleven' ) ); ?>

Llamar al menú <?php wp_nav_menu( array( 'theme_location' => 'footer' ) ); ?>

martes 27 de septiembre de 11

ALGUNOS CONSEJOS DE OPTIMIZACIÓN

martes 27 de septiembre de 11

Optimizando Wordpress• Crea un .htaccess para controlar la cache

# BEGIN WordPress<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule># END WordPress

# Control de Cache<FilesMatch "\.(ico|pdf|flv)$">Header set Cache-Control "max-age=29030400, public"</FilesMatch><FilesMatch "\.(jpg|jpeg|png|gif|swf)$">Header set Cache-Control "max-age=604800, public"</FilesMatch><FilesMatch "\.(xml|txt|css|js)$">Header set Cache-Control "max-age=604800, proxy-revalidate"</FilesMatch><FilesMatch "\.(html|htm|php)$">Header set Cache-Control "max-age=180, private, proxy-revalidate"</Files>

martes 27 de septiembre de 11

Optimizando Wordpress• GZIP Deflate con .htaccess

<IfModule mod_setenvif.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript </IfModule>

• Guardar contenidos en cache con un plugin como WP Super Cache

• Utiliza un plugin para guardar la cache de las imagenes de Gravatar.

martes 27 de septiembre de 11

Optimizando Wordpress• WP-Optimize

martes 27 de septiembre de 11

Optimizando Wordpress• ¿Evitar llamadas en nuestros themes?

<?php bloginfo('url') ?> <!---- Escribe la dirección en lugar de utilizar la función blog info.

• Evitar la carga de funciones obsoletas en wp-settings.php

• ¿Borrar revisiones?DELETE FROM wp_posts WHERE post_type = "revision";

• ¿Desactivar revisiones?define('WP_POST_REVISIONS', false);

• Controlar uso de memoria:<?php echo memory_get_usage() . " bytes"; ?>

martes 27 de septiembre de 11

Optimizando Wordpress• Evitar la carga de funciones obsoletas en wp-

settings.php (no incluir deprecated.php)

• Borrar revisionesDELETE FROM wp_posts WHERE post_type = "revision";

• ¿Desactivar revisiones y autosave?define('WP_POST_REVISIONS', false);

• Controlar uso de memoria:<?php echo memory_get_usage() . " bytes"; ?>

martes 27 de septiembre de 11

Optimizando Wordpress• Optimiza y comprime tu código HTML, CSS y

JavaScript.

• Si tienes acceso a su configuración, optimza Apache, PHP, y MySQL.

• http://developer.yahoo.com/performance/rules.html

martes 27 de septiembre de 11

TAXONOMÍAS

martes 27 de septiembre de 11

¿Taxonomías?

martes 27 de septiembre de 11

Taxonomías por defecto• Categorías (category)

• Etiquetas (post_tag)

• Categorías de enlaces (link_category)

martes 27 de septiembre de 11

Registrar una taxonomíafunction lenguajes_init() {

! register_taxonomy(! ! 'lenguajes',! ! 'post',! ! array(! ! ! 'label' => __( 'Lenguajes de programación' ),! ! ! 'sort' => true,! ! ! 'args' => array( 'orderby' => 'term_order' ),! ! ! 'rewrite' => array( 'slug' => 'lenguajes' )! ! )! );}

add_action( 'init', 'lenguajes_init' );

martes 27 de septiembre de 11

Consultas por taxonomía

//Consultar los posts sobre PHP$query = new WP_Query( array( 'lenguaje' => 'php' ) );

//Algo un poco más complejo$args = array(! 'tax_query' => array(! ! array(! ! ! 'taxonomy' => 'languaje',! ! ! 'field' => 'slug',! ! ! 'terms' => 'php'! ! )! ));$query = new WP_Query( $args );

martes 27 de septiembre de 11

CUSTOM POST TYPES

martes 27 de septiembre de 11

Custom post typespor defecto

• Un ‘post’ es algo que se almacena en la tabla wp_posts

• Tipos por defecto:

• Post

• Page

• Attachment

• Revisions

• Nav menusmartes 27 de septiembre de 11

Custom post typespor defecto

add_action( 'init', 'create_post_type' );

function create_post_type() {! register_post_type( 'acme_product',! ! array(! ! ! 'labels' => array(! ! ! ! 'name' => __( 'Products' ),! ! ! ! 'singular_name' => __( 'Product' )! ! ! ),! ! ! 'public' => true,! ! ! 'has_archive' => true,! ! ! 'rewrite' => array('slug' => 'products')! ! )! );}

martes 27 de septiembre de 11

Algunas referencias• WPDB

http://codex.wordpress.org/Class_Reference/wpdb

• Optimización de WordPress: infografíahttp://conecti.ca/2011/07/09/infografia-optimizar-wordpress/

martes 27 de septiembre de 11

?><!---

Este taller se realizó el 24 de septiembre de 2011 en la UEx dentro de los seminarios de The Evnt.

martes 27 de septiembre de 11

top related