Оглавление
Jhon Jairo Rincón Cardona. El gran libro de desarrollo de plugins WordPress
Índice
Introducción. Lo que aprenderá en este libro
Instalando el servidor local wampserver
Instalando la plantilla para nuestro WordPress
Funciones y condicionales básicos de un plugin ¿Qué es un plugin?
Requisitos de cabecera, título y descripción del plugin
Campos de encabezado disponibles
Ganchos de activación y desactivación
flush_rewrite_rules
Métodos de desinstalación
Mejores prácticas para definir nuestras funciones o variables
Comprobación de las capacidades de usuario
Métodos de validación de datos
Métodos de desinfección para la entrada de datos
sanitize_email( $email )
sanitize_file_name( $filename )
sanitize_html_class( $class, $fallback = ‘’ )
sanitize_key( $key )
sanitize_meta ( $meta_key, $meta_value, $object_type, $object_subtype = ‘’ )
sanitize_mime_type( $mime_type )
sanitize_option( $option, $value )
sanitize_sql_orderby ( $orderby )
sanitize_text_field ( $str )
sanitize_title( $title )
sanitize_title_for_query( $title )
sanitize_title_with_dashes( $title )
sanitize_user()
esc_url_raw( $url )
wp_filter_post_kses( $data )
wp_filter_nohtml_kses()
Ejemplos
Nonces I. Generalidades
Nonces en WordPress
Nonces en URL
Nonces en formularios
Proteger a los usuarios de ellos mismos
Creando Nonces en el desarrollo de plugins
Nonces en URL
Nonces en formulario
Nonces usando ajax
Comprobando validez de Nonces en el desarrollo de plugins
Ejemplos
Nonces II
Menús y submenús de administración de WordPress. Creación de menús en la administración
Crear un menú en WordPress
Creando la función callback del menú
Eliminar menús
Creación de submenús
Funcion add_submenu_page()
¿Qué son los hooks o ganchos en WordPress y para qué sirven?
Ganchos de acción o Action hooks I
do_action(‘nombre_hook’)
Ganchos de acción o Action hooks II
wp_is_post_revision
Funciones de WordPress
get_the_author_meta
wp_mail
Funciones de PHP
Ganchos de filtro o filter hooks
add_filter
Ganchos personalizados
Shortcodes ¿Qué es un shortcode?
Creando un shortcode complejo con parámetros
shortcode_atts
Modificando el shortcode con parámetros
Creando un filtro para nuestro shortcode
Eliminando el shortcode
Uso de las Api settings y Api options ¿Qué son las API settings?
La API de configuración definida
Funciones
Uso de la API de configuración I
register_setting
Agregue una nueva sección a una página de configuración
add_settings_section
Uso de la API de configuración II
add_settings_field
Uso de la API de configuración III
Uso de la API options
add_option
Metadatos y Metaboxes. Metadatos I
add_post_meta
get_post_meta
Metadatos II
delete_post_meta
Metadatos III
Metacampo de valor único
Funcion update_post_meta()
Custom fields
Metaboxes personalizados
Añadiendo editor TinyMCE
wp_editor
Custom Post Types ¿Qué es un Custom Post Type?
Creando el Custom Post Type
Creando el contenido para el CPT
Pollo frito al curry
Espaguetis a la boloñesa
Espaguetis a la carbonara
Pizza napolitana
Pizza vegetariana
Paella de marisco
Fideuá con sepia
Pulpo a la gallega
Fabada asturiana
Habilitando la rest api de WordPress para nuestro CPT
Taxonomías en WordPress ¿Qué son las taxonomías?
Categorías vs etiquetas
Categorías
Etiquetas
Taxonomías y términos
Creando una taxonomía
register_taxonomy
Funciones para obtener los términos de una taxonomía I
the_terms()
Funciones para obtener los términos de una taxonomía II
get_the_term_list()
Creando nuestro plugin con arquitectura MVC. Modularizando el código para nuestro plugin I
Función extract() PHP
Modularizando el código para nuestro plugin II
Modularizando el código para nuestro plugin III
Gestión y creación de usuarios desde el administrador. Creando usuarios en WordPress I
wp_create_user
wp_generate_password
Creando usuarios en WordPress II
wp_insert_user
Obteniendo la información de un usuario
Actualizando y eliminando la información de un usuario. Actualizar usuario
Eliminar usuario
Agregando un campo a los metadatos de usuarios
get_user_meta
Analizando el código
Guardando los datos de usuarios en el metacampo
update_user_meta
Creando un nuevo archivo para organizar el código I
Creando un nuevo archivo para organizar el código II
Creando un nuevo archivo para organizar el código III
Manipulando los roles
Manipulando el rol de un usuario
Manipulando las capacidades de un rol
Comprobando las capacidades de usuario
Manipulando la http api de WordPress y el uso de los transitorios. Funciones para el uso de las peticiones HTTP (Parte I)
wp_remote_get
Funciones para el uso de las peticiones HTTP (Parte II)
wp_remote_post
Funciones para el uso de la caché I
set_transient
get_transient
delete_transient
Funciones para el uso de la caché II
Peticiones ajax de WordPress y encolamiento de archivos js y css. Creando sistema de encolamiento de archivos js y css I
wp_enqueue_style
wp_enqueue_script
Creando sistema de encolamiento de archivos js y css II
Método Ajax WordPress I
wp_localize_script
Método Ajax WordPress II
Método Ajax WordPress III
Método Ajax WordPress IV
Crear widgets. Crear widgets I
Crear widgets II
Tareas automáticas con wp_cron en WordPress. Tareas cron con WP_Cron I
Tareas cron con WP_Cron II
wp_get_schedules
Tareas cron con WP_Cron III
wp_next_scheduled()
wp_schedule_event()
Tareas cron con WP_Cron IV
Internacionalización de idiomas ¿Qué es la internacionalización?
¿Por qué es importante la internacionalización?
Internacionalizar la metadata del plugin
Cadenas de texto traducibles en código
Archivos .pot .po y .mo
Funciones para la internacionalización de idiomas
Traducción de cadenas de texto en archivos js
Generando los archivos POT
POEDIT
EAZY PO
Cargando el TextDomain a nuestro plugin
load_plugin_textdomain
Interactuando con la base de datos de WordPress. Consultas a la base de datos de WordPress I. Hablar con la base de datos: la clase wpdb
Usando el objeto $wpdb
1ª Función: SELECCIONE una variable
2ª Función: SELECCIONE una fila
3ª Función: SELECCIONE una columna
Ejemplos de uso
Consultas a la base de datos de WordPress II
Consultas predefinidas I (funciones)
1. $wpdb->get_results()
2. $wpdb->insert()
3. $wpdb->replace()
4. $wpdb->update()
5. $wpdb->delete()
Consultas predefinidas II (funciones)
1. $wpdb->get_results()
2. $wpdb->insert()
3. $wpdb->replace()
Consultas predefinidas III (funciones)
4. $wpdb->update()
5. $wpdb->delete()
Consultas generales o específicas
Metodo $wpdb->query()
Preparando consultas contra inyección sql
Metodo $wpdb->prepare()
Mostrando errores en la consulta
Otras propiedades para las consultas de BBDD
Gestor multimedia. Gestor multimedia I ¿Qué es la Biblioteca de medios?
Gestor multimedia II Evento select
Gestor multimedia III imprimiendo la imagen
Veamos ahora cómo obtener e imprimir múltiples imágenes
Gestor multimedia IV guardando las imágenes
Gestor multimedia (Método insert)
Gestor multimedia (Método ready)
Método attach
Método close
Crear un plugin para un modal. Organizando los archivos para el plugin I
Organizando los archivos para el plugin II
Creando el menú de opciones
Encolando los archivos css y js I
Encolando los archivos css y js II
Encolando los archivos css y js III
Creando el menú de opciones I
Creando el menú de opciones II
Creando el menú edit
Creando el modal y editando el js para abrirlo I
Creando el modal y editando el js para abrirlo II
Creando el ajax para guardar los datos del modal I
Creando el ajax para guardar los datos del modal II
Creando el ajax para guardar los datos del modal III
Probando la función para crear nuestros popup
Configurando la página de edición I
Configurando la página de edición II
Configurando la página de edición III
wp_editor()
Configurando la página de edición IV
Activando el marco multimedia de WordPress
Creando la función para limpiar la url de la imagen
Obteniendo la ruta final de la imagen de nuestro marco multimedia
Preparando el método Ajax para guardar los datos del popup
Función php para recibir los datos del ajax
Recuperando los datos para nuestra página popup edit I
Recuperando los datos para nuestra página popup edit II
Ajustando el estado del botón switch para la llamada a la acción
Configurando los input radio
Creando la previsualización del popup
Estilos css para el modal
Creando el método Ajax para eliminar un popup
Creando el código php para la eliminación de los popup
Creando la carpeta public para mostrar el popup
Creando el shortcode para el popup
Editando el css y el js para mostrar el popup
Desarrollando el plugin para gestionar usuarios. Presentación del plugin
Descargando las librerías
Encolando los archivos
Instalando nuestro plugin, configurando la activación y desactivación
Creando el menú
Creando las páginas de visualización
Creando la estructura de la página del menú
Estructura del guardado de tablas con ajax (parte I)
Estructura del guardado de tablas con ajax (parte II) instalando sass
Estructura del guardado de tablas con ajax (parte III)
Configurando el lado del servidor para recibir los datos
Mostrando datos de las tablas
Redireccionando a la página edit
Eliminar tabla
Estructurando la página para la manipulación de usuarios I
Estructurando la página para la manipulación de usuarios II
Agregando el gestor multimedia de WordPress
Limpiando la ruta de la imagen
Creando las funciones para validar los campos
Validando el campo email
Preparando el método ajax
Construyendo el objeto para todos los métodos del CRUD
Manipulando el archivo crud json
Creando el método de lectura json
Mostrando los usuarios insertados con jQuery I
Creando el método para actualizar los usuarios
Funcionalidad del Botón Editar
Mostrando los usuarios insertados con jQuery II
Configurando el ajax para actualizar el usuario
Obteniendo el id y los valores de los campos del usuario
Validando los campos del formulario e insertando el ajax
Añadiendo una animación de color al actualizar un usuario
Creando el método de eliminar usuario
Analicemos el código
Eliminando el usuario de nuestra tabla I
Eliminando el usuario de nuestra tabla II
Creando el shortcode para mostrar el resultado final I
Creando el shortcode para mostrar el resultado final II
Creando el shortcode para mostrar el resultado final III