3. Introducción - Plugins
• Permiten la modificación, personalización y mejora de
WordPress. En lugar de modificar el núcleo del programa de
WordPress, se puede añadir funcionalidad a éste por medio
de los plugin.
• Plugin de WordPress: Un plugin de WordPress es un programa, o
un conjunto de una o varias funciones, escritas en el lenguaje
script PHP, que añaden un conjunto específico de características o
servicios a una web WordPress, que pueden integrarse
perfectamente en la web utilizando puntos de acceso y métodos
provistos por una Interfaz de Programación de Aplicaciones (API)
4. Creando un plugin: Nombres,
Archivos y Ubicaciones
• Nombre del Plugin
• La primera tarea a la hora de crear un plugin es pensar en qué va a hacer el
plugin, y crear un nombre para él. Comprobar que el nombre no exista ya; se
puede hacer, también, una búsqueda en Google.
• Archivos del Plugin
• El siguiente paso es crear un archivo PHP con un nombre, derivado del
nombre que se ha elegido para el plugin. Intentar elegir un nombre único.
• Otra opción es separar el plugin en varios archivos. El plugin debe tener al
menos un archivo PHP; además puede contener archivos JavaScript, archivos
CSS, archivos de imagen, archivos de localización, etc.
• Archivo Readme
• Si deseas hospedar el plugin en http://wordpress.org/extend/plugins/,
necesitas crear un archivo readme.txt en formato estándar, e incluirlo con el
plugin. (http://wordpress.org/extend/plugins/about/readme.txt)
• Página de Inicio
• Es muy útil crear una página que haga de página de inicio del plugin
WordPress. Esta página podría describir como instalar el plugin, qué hace,
con qué versiones de WordPress es compatible, qué ha cambiado entre sus
diferentes versiones, y cómo utilizar el plugin.
5. Cabeceras de archivo
• Información Estándar del Plugin
• Las primeras líneas del archivo PHP principal del plugin deben
contener la cabecera estándar de información del plugin. Esta
cabecera permite a WordPress reconocer que el plugin existe, y
ponerlo en la pantalla de gestión para que pueda ser activado,
cargado y ejecutar sus funciones.
• La línea de licencia debería ser un identificador común, corto, para
señalar bajo que licencia se distribuye el código y está destinado a
ser una forma sencilla de ser explícito acerca de la licencia del
mismo.
6. Licencia
• Se acostumbra a generar la cabecera estándar, con información sobre la
licencia del plugin. Muchos plugin usan la licencia GPL2, utilizada por
WordPress, o una licencia compatible with the GPL2. Para indicar una
licencia GPL2 incluya las siguientes líneas en su plugin:
7. Programando el plugin
Ganchos de Plugin Wordpress
• Muchos plugin llevan a cabo sus objetivos conectándose a uno o más "ganchos"
(hooks) de plugin WordPress. La forma en que funcionan los ganchos de plugin
es que en diferentes instantes mientras WordPress está corriendo, WordPress
comprueba si algún plugin ha registrado alguna función para ejecutarse en ese
preciso instante, y si es así, ejecuta dicha función. Estas funciones modifican el
comportamiento del WordPress por defecto.
• Por ejemplo, antes de que WordPress añada el título de un post a la salida del
navegador, primero chequea si algún plugin ha registrado una función para el
gancho "filtro" llamado "the title". Si es así, el texto de título se pasará por turnos
a través de cada función registrada, y el resultado final será lo que se escriba. Así,
si su plugin necesita añadir información al título, puede registrar una función de
filtro "the title".
• Otro ejemplo es el gancho "acción" llamado "wp_footer". Justo antes del final de
la página HTML que WordPress está generando, comprueba si algún plugin ha
registrado funciones para el gancho de acción "wp_footer" y los ejecuta por turno.
• Se puede aprender más sobre como registrar funciones, tanto para ganchos de
filtro como para ganchos de acción, y qué ganchos de plugin están disponibles en
WordPress, en el API Plugin.
11. Archivos obligatorios de los
Temas Wordpress
• style.css: Estilo principal de todo el sitio
• index.php: Página principal del sitio
• single.php
• archive.php
• category.php
• searchform.php
• search.php
• 404.php
• comments.php
• footer.php
• header.php
• sidebar.php
• page.php
• comments.php
12. Snippets
• <?php bloginfo('name'); ?> : Llama al título del blog
• <?php wp_title(); ?> : Llama al nombre de la página y lo muestra en la sección HTML del título
• <?php the_content(); ?> : Llama al contenido de una entrada o página específica
• <?php bloginfo('stylesheet_url'); ?> : Llama al estilo style.css
• <?php get_header(); ?> : Llama al archivo header.php
• <?php if(have_posts()) : ?><?php while(have_posts()) : the_post(); ?> : Permite mostrar una
entrada o página con su contenido
• <?php endwhile; ?> : Cierra la función ‘while’ de PHP
• <?php endif; ?> : Cierra la función ‘If’ de PHP
• <?php get_sidebar(); ?> : Llama al archivo sidebar.php
• <?php get_footer(); ?> : Llama al archivo footer.php
• <?php the_time('m-d-y') ?> : Llama a la fecha en el formato ‘mm-dd-aa'
• <?php comments_popup_link(‘Sin Comentarios »', '1 Comentario »', '% Comentarios
»'); ?> : Muestra el número de comentarios de una entrada
13. Snippets
• <?php the_permalink() ?> : Llama la URL de una página o entrada específica
• <?php the_title(); ?> : Llama al título de una entrada o página específica
• <?php the_category(', ') ?> : Llama la categoría de la entrada o página
• <?php the_author(); ?> : Llama el nombre del autor de la entrada o página
• <?php edit_post_link('Editar', ' | ', "); ?> : Permite editar la entrada o página
• <?php get_links_list(); ?> : Llama al Blogroll
• <?php comments_template(); ?> : Llama al archivo comment.php
• <?php previous_post_link('« %link') ?> : Llama a la URL de la entrada anterior
• <?php next_post_link(' %link »') ?> : llama a la URL de la siguiente entrada
• <?php wp_list_pages(); ?> : Llama la lista de páginas del blog
• <?php wp_list_cats(); ?> : Llama la lista de categorís del blog
• <?php the_ID(); ?> : Llama al ID específico de una entrada o página
20. Optimización
• Plugins
• Desactivar o borrar plugins innecesarios.
• Realiza métricas del rendimiento del servidor, desactivando
selectivamente los plugins.
• Utilizar funciones nativas como get_option() o update_option() serán
más rápidas que escribir SQL.
• Temas
• Archivos de imagen
• Quitar los archivos innecesarios o remplazarlos por texto.
• Todas las imágenes deben estar optimizadas.
• Elegir el formato correcto para cada tipo de imagen.
• Combinar múltiples CSS dentro de uno solo, optimizarlo.
• Disminuir archivos CSS y JavaScript.
• Reducir/Optimizar consultas
• Crear contenido estático en la medida de lo posible.
21. Optimización
• Contenido estático
• Se puede almacenar archivos estáticos dentro de servidores externos
al principal. Esta técnica es utilizada por Google, Flickr, Youtube, etc.
• Existen servidores optimizados para servir archivos estáticos y
trabajan más eficientemente que servidores basados en Apache, por
ejm. publicfile o lighttpd.
• Múltiples Hostnames
• La mayoría de navegadores simultáneamente realizan 2 peticiones a
un servidor, si tu página requiere 16 archivos serán descargados de 2
en 2, si se configuran 4 hostnames se descargarán 8 a la vez.
• Feeds
• Los feeds se pueden derivar a servicios externos, por ejm. Google
FeedBurner que maneja todo el tráfico de feeds y sólo actualiza el
feed de tu servidor cada 30 minutos.
22. Optimización
• Plugins de almacenamiento en Caché
• Existen plugins que pueden guardar tus entradas y páginas de WP como si
fueran contenido estático. W3 Total Cache o WP Super Cache
• Si el WP tiene demasiado contenido dinámico, la configuración del caché
puede ser más compleja.
• Almacenammiento en caché por el navegador
• Puede ayudar a reducir el número de peticiones por página.
• Cambiar las cabeceras correctamente harán que los navegadores almacenen
en la computadora del visitante, archivos que no cambian, como imágenes,
javascripot, css.
• Esta técnica permite al navegador ver qué archivos cambiaron, en lugar de
solicitarlos directamente. El resultado será que el navegador puede manejar
muchas más respuestas 304, confirmando que un archivo no cambió, en lugar
de las respuestas 200, que requieren la transferencia del archivo.
• Almacenamiento en caché en el servidor
• Es más complejo, utilizado en sitios de alto tráfico. La más simple es
almacenando localmente en el servidor y una solución más compleja utiliza
múltiples servidores de almacenamiento, conocido como servidores proxy
inversos, en frente del servidor que corre la aplicación WP..