WP Hooks

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 141

3 Componentes Principales

Nucleo
Temas
Plugins
Ganchos: (Hooks)
Acciones y Filtros
3 Ganchos básicos

register_activation_hook( )
register_deactivation_hook( )
register_uninstall_hook( )
WordPress API
APIs Básicas

Plugin API
Options API
Settings API
HTTP API
Shortcode API
Requisitos de cabecera
Comentario de cabecera
/*
Plugin Name: Nombre del plugin
Plugin URI: http://miplugin.com/
Description: Éste plugin cambia el título
Version: 1.0
Author: Gilbert Rodríguez
Author URI: https://beziercode.com.co
License: GPL
License URI: http://
Text Domain: miplugin-beziercode
Domain Path: /languages/
*/
Ganchos (Hooks)
Activación y Desactivación
register_activation_hook( string $file, callable $function );

register_deactivation_hook( string $file, callable $function );


Métodos de
desinstalación
register_uninstall_hook( string $file, callable $function );

uninstall.php
Mejores Prácticas
Evitar conflictos de nombres
$prefijo_nombrevariable=’’;
function prefijo_nombrefuncion(){}
class Prefijo_NombreClase {}
Mejores Prácticas
Comprobar existencias

Variables: isset()
Funciones: function_exists()
Clases: class_exists()
Constantes: defined()
Mejores Prácticas
Estructura de carpetas
plugin-name
plugin-name.php
uninstall.php
languages
includes
admin
js
css
images
plublic
js
css
images
Mejores Prácticas
Condicionales de carga

if( is_admin() ) {
// Mostrar ajustes de
// administración
}
Roles
Super Admin Editor
create_sites delete_others_pages
delete_sites delete_others_posts
manage_network delete_pages
manage_sites delete_posts
manage_network_users delete_private_pages
manage_network_plugins delete_private_posts
manage_network_themes delete_published_pages
manage_network_options delete_published_posts
edit_others_pages
Administrator edit_others_posts
activate_plugins edit_pages
delete_others_pages edit_posts
delete_others_posts edit_private_pages
delete_pages edit_private_posts
delete_posts edit_published_pages
delete_private_pages edit_published_posts
delete_private_posts manage_categories
delete_published_pages manage_links
delete_published_posts moderate_comments
edit_dashboard publish_pages
edit_others_pages publish_posts
edit_others_posts read
edit_pages read_private_pages
edit_posts read_private_posts
edit_private_pages unfiltered_html
edit_private_posts upload_files
edit_published_pages
edit_published_posts Author
edit_theme_options
export delete_posts
import delete_published_posts
list_users edit_posts
manage_categories edit_published_posts
manage_links publish_posts
manage_options read
moderate_comments upload_files
promote_users
publish_pages Contributor
publish_posts
read_private_pages delete_posts
read_private_posts edit_posts
read read
remove_users
switch_themes Subscriber
upload_files
read
customize
delete_site
update_core
update_plugins
update_themes
install_plugins
install_themes
upload_plugins
upload_themes
delete_themes
delete_plugins
edit_plugins
edit_themes
edit_files
edit_users
create_users
delete_users
unfiltered_html
Capability Super Admin Administrator Editor Author Contributor Subscriber

create_sites Y

delete_sites Y

manage_network Y

manage_sites Y

manage_network_users Y

manage_network_plugins Y

manage_network_themes Y

manage_network_options Y

upload_plugins Y

upload_themes Y

Capability Super Admin Administrator Editor Author Contributor Subscriber

activate_plugins Y Y
(single site or
enabled by network setting)

create_users Y Y (single site)

delete_plugins Y Y (single site)

delete_themes Y Y (single site)

delete_users Y Y (single site)

edit_files Y Y (single site)

edit_plugins Y Y (single site)

edit_theme_options Y Y

edit_themes Y Y (single site)

edit_users Y Y (single site)

export Y Y

import Y Y

Capability Super Admin Administrator Editor Author Contributor Subscriber

install_plugins Y Y (single site)

install_themes Y Y (single site)

list_users Y Y

manage_options Y Y

promote_users Y Y

remove_users Y Y

switch_themes Y Y

update_core Y Y (single site)

update_plugins Y Y (single site)

update_themes Y Y (single site)

edit_dashboard Y Y

customize Y Y

delete_site Y Y

Capability Super Admin Administrator Editor Author Contributor Subscriber

moderate_comments Y Y Y

manage_categories Y Y Y

manage_links Y Y Y

edit_others_posts Y Y Y

edit_pages Y Y Y

edit_others_pages Y Y Y

edit_published_pages Y Y Y

publish_pages Y Y Y

delete_pages Y Y Y

delete_others_pages Y Y Y

delete_published_pages Y Y Y

delete_others_posts Y Y Y

delete_private_posts Y Y Y

edit_private_posts Y Y Y

read_private_posts Y Y Y

delete_private_pages Y Y Y

edit_private_pages Y Y Y

read_private_pages Y Y Y

unfiltered_html Y Y (single site) Y (single site)

Capability Super Admin Administrator Editor Author Contributor Subscriber

edit_published_posts Y Y Y Y

upload_files Y Y Y Y

publish_posts Y Y Y Y

delete_published_posts Y Y Y Y

edit_posts Y Y Y Y Y

delete_posts Y Y Y Y Y

Capability Super Admin Administrator Editor Author Contributor Subscriber

read Y Y Y Y Y Y
Validación de datos
Funciones integradas de PHP

isset() - empty()
mb_strlen() - strlen()
preg_match, strpos()
count()
in_array()
Validación de datos
Funciones de WordPress

is_email()
term_exists()
username_exists()
validate_file()

*_exists()
*_validate()
is_*()
Asegurando la
entrada de datos
sanitize_*()
sanitize_email()
sanitize_file_name()
sanitize_html_class()
sanitize_key()
sanitize_meta()
sanitize_mime_type()
sanitize_option()
sanitize_sql_orderby()
sanitize_text_field()
sanitize_title()
sanitize_title_for_query()
sanitize_title_with_dashes()
sanitize_user()
esc_url_raw()
wp_filter_post_kses()
wp_filter_nohtml_kses()
Asegurando la
salida de datos
Escapando
esc_html()
esc_url()
esc_js()
esc_attr()

Escapando con localización


esc_html__()
esc_html_e()
esc_html_x()
esc_attr__()
esc_attr_e()
esc_attr_x()

Escapadas personalizadas
wp_kses()
NONCES

wp_create_nonce()
wp_verify_nonce()
Menús
Agregando menú
add_menu_page(
string $page_title,
string $menu_title,
string $capability,
string $menu_slug,
callable $function = '',
string $icon_url = '',
int $position = null
)
add_action( ‘admin_menu’, ‘function_name’ )
Menús
Removiendo menú
remove_menu_page(
string $menu_slug
)
Submenús
Agregando Submenús

add_submenu_page(
string $parent_slug,
string $page_title,
string $menu_title,
string $capability,
string $menu_slug,
callable $function = ''
)

add_action( ‘admin_menu’, ‘function_name’ )


Acciones

add_action(
string $tag,
callable $function,
int $priority = 10,
int $accepted_args = 1
)
Filtros

add_filter(
string $tag,
callable $function,
int $priority = 10,
int $accepted_args = 1
)
Ganchos personalizados
Creando un gancho de acción

do_action(
string $tag,
$arg = ‘’
)
Creando un gancho de filtro

apply_filters(
string $tag,
mixed $value,
$arg = ‘’
)
Ganchos personalizados
Eliminando una función Callback de un gancho

remove_action(
string $tag,
callback $function_to_remove,
int $priority = 10,
)
Eliminando todas las funciones Callback de un gancho

remove_all_actions(
string $tag,
int|bool $priority = false
)
Determinando el
Gancho Actual

Current_action()
Current_filter()
Comprobando la cantidad
de ejecución

did_action( string $tag )


Depurando errores

function mp_depurando()
{
echo ‘<p>’.current_action().‘</p>’;
}
add_action(‘all’, ‘mp_depurando’);
Capacidades de Usuario

Capability Super Admin Administrator Editor Author Contributor Subscriber

create_sites Y

delete_sites Y

manage_network Y

manage_sites Y

manage_network_users Y

manage_network_plugins Y

manage_network_themes Y

manage_network_options Y

upload_plugins Y

upload_themes Y

Capability Super Admin Administrator Editor Author Contributor Subscriber

activate_plugins Y Y
(single site or
enabled by network setting)

create_users Y Y (single site)

delete_plugins Y Y (single site)

delete_themes Y Y (single site)

delete_users Y Y (single site)

edit_files Y Y (single site)

edit_plugins Y Y (single site)

edit_theme_options Y Y

edit_themes Y Y (single site)

edit_users Y Y (single site)

export Y Y

import Y Y

Capability Super Admin Administrator Editor Author Contributor Subscriber

install_plugins Y Y (single site)

install_themes Y Y (single site)

list_users Y Y

manage_options Y Y

promote_users Y Y

remove_users Y Y

switch_themes Y Y

update_core Y Y (single site)

update_plugins Y Y (single site)

update_themes Y Y (single site)

edit_dashboard Y Y

customize Y Y

delete_site Y Y

Capability Super Admin Administrator Editor Author Contributor Subscriber

moderate_comments Y Y Y

manage_categories Y Y Y

manage_links Y Y Y

edit_others_posts Y Y Y

edit_pages Y Y Y

edit_others_pages Y Y Y

edit_published_pages Y Y Y

publish_pages Y Y Y

delete_pages Y Y Y

delete_others_pages Y Y Y

delete_published_pages Y Y Y

delete_others_posts Y Y Y

delete_private_posts Y Y Y

edit_private_posts Y Y Y

read_private_posts Y Y Y

delete_private_pages Y Y Y

edit_private_pages Y Y Y

read_private_pages Y Y Y

unfiltered_html Y Y (single site) Y (single site)

Capability Super Admin Administrator Editor Author Contributor Subscriber

edit_published_posts Y Y Y Y

upload_files Y Y Y Y

publish_posts Y Y Y Y

delete_published_posts Y Y Y Y

edit_posts Y Y Y Y Y

delete_posts Y Y Y Y Y

Capability Super Admin Administrator Editor Author Contributor Subscriber

read Y Y Y Y Y Y
Settings API

Registrando una configuración

register_setting(
string $option_group,
string $option_name,
string|array $callbakc|$args
);
$sanitize_callback = ‘func_name’;
$args = [
'type' => 'string',
'group' => $option_group,
'description' => '',
'sanitize_callback' => null,
'show_in_rest' => false,
];
Settings API

Agregando una sección a una configuración

add_settings_section(
string $id,
string $title,
callable $callback,
string $page
);
Settings API

Registrando un campo en una sección

add_settings_field(
string $id,
string $title,
callable $callback,
string $page,
string $section,
array $args = []
);
Settings API

Setting Register/Unregister Add Field/Section

register_setting() register_setting()
unregister_setting() unregister_setting()

Options Form Rendering Errors

settings_fields() add_settings_error()
do_settings_sections() get_settings_errors()
do_settings_fields() settings_errors()
Settings API

Registrando una configuración

register_setting(
string $option_group,
string $option_name,
string|array $callbakc|$args
);
$sanitize_callback = ‘func_name’;
$args = [
'type' => 'string',
'description' => '',
'sanitize_callback' => null,
'show_in_rest' => false,
'default' => $array()
];
Settings API

Agregando una sección a una configuración

add_settings_section(
string $id,
string $title,
callable $callback,
string $page
);
Settings API

Registrando un campo en una sección

add_settings_field(
string $id,
string $title,
callable $callback,
string $page,
callable $section,
array $args = []
);
Options API

Add Option Get Option Update Option Delete Option

add_option() get_option() update_option() delete_option()

add_site_option() get_site_option() update_site_option() delete_site_option()


Options API

Agregando un registro a la tabla {$wpdb->prefix}_options

add_option(
string $option,
mixed $value = ‘’,
string $deprecated = ‘’,
string|bool $autoload = ‘yes’
);
Options API

Obteniendo un registro de la tabla {$wpdb->prefix}_options

get_option(
string $option,
mixed $default = false
);
Options API

Actualizando un registro de la tabla {$wpdb->prefix}_options

update_option(
string $option,
mixed $value,
string|bool $autoload = null
);
Options API

Eliminando un registro de la tabla {$wpdb->prefix}_options

delete_option(
string $option
);
Página de configuración
personalizada

Página de configuración personalizada

Menú de administración
API Settings
API Options
Página de configuración
personalizada

Setting Register/Unregister Add Field/Section

register_setting() add_settings_section()
unregister_setting() add_settings_field()

Options Form Rendering Errors

settings_fields() add_settings_error()
do_settings_sections() get_settings_errors()
do_settings_fields() settings_errors()
Página de configuración
personalizada

Produce campos nonce, action y option_page para una página de configuración.

settings_fields( string $option_group );

Imprime todas las secciones de configuración agregadas a una página


de configuración específica

do_settings_sections( string $page );

Imprime todas las secciones de configuración agregadas a una página


de configuración específica

do_settings_fields( string $page, string $section);


Página de configuración
personalizada

Registra un error de configuración que se mostrará al usuario

add_settings_error(
string $setting,
string $code,
callable $message,
string $type = ‘error’
);

Muestra errores de configuración registrados por add_settings_error().

settings_errors(
string $setting,
bool $sanitize = false,
bool $hide_on_update = false
);

Busca errores de configuración registrados por add_settings_error()

get_settings_errors( string $setting, bool $hide_on_update = false);


Custom Post Type

Tipos de publicaciones predeterminados de WordPress

post revision
page menu
attachment
Custom Post Type

Registrando un Custom Post Types

register_post_type(
string $post_type,
array|string $args = array()
);
Custom Post Type

Propias URL

http://misitio.com/productos/%titulo_producto%
http://misitio.com/productos/manzana
Archivos personalizados para los CPT

Archivo para visualizar cada publicación independientemente

single-{post-type}.php

single-productos.php

Archivo para visualizar todas las publicaciones

archive-{post-type}.php

archive-productos.php
Loop, WP_Query

Consultas a la tabla {$wpdb->prefix}_posts

$query = new WP_Query( $args );

Métodos iniciales de una consulta estándar

$query->have_posts(); $query->the_post();
Funciones iniciales

Muestra el título

the_title(); get_the_title();

Muestra el contenido

the_content(); get_the_content();

Muestra la foto de portada | descatada

the_post_thumbnail() get_the_post_thumbnail();

Muestra el enlace permanente de la publicación actual

the_permalink() get_the_permalink();

Muestra el autor que realizó la publicación

the_author(); get_the_author();

Muestra la fecha de publicación

the_date() get_the_date();

Muestra el ID de la publicación

the_ID(); $post->ID;
Metadatos

Agrega un metadato

add_post_meta(
int $post_id,
string $meta_key,
mixed $meta_value,
bool $unique = false
);

Actualiza un metadato

update_post_meta(
int $post_id,
string $meta_key,
mixed $meta_value,
mixed $prev_value = ‘’
);
Metadatos

Borrar un metadato

delete_post_meta(
int $post_id,
string $meta_key,
mixed $meta_value
);

Obtener un metadato

get_post_meta(
int $post_id,
string $meta_key = ‘’,
bool $single = false
);
MetaBoxes

Añade una caja de metadatos a una o más pantallas (post types)

add_meta_box(
string $id,
string $title,
callable $callback,
string|array|WP_Screen $screen = null,
string $context = ‘advanced’,
string $priority = ‘default’,
array $callback_args = null
);
MetaBoxes

Quitando una caja de metadatos a una o más pantallas (post types)

remove_meta_box(
string $id,
string|array|WP_Screen $screen,
string $context
);
WP_EDITOR - TinyMCE (WYSIWYG)

WYSIWYG (What You See Is What You Get )


“Lo que ves es lo que obtienes”

Añade un editor de texto TinyMCE

wp_editor(
string $content,
string $editor_id,
array $settings = array()
);
Encolamiento (Enqueue)

Ganchos para el encolamiento de archivos

Agrega los archivos en cola para las páginas del front-end

‘wp_enqueue_scripts’

Agrega los archivos en cola para las páginas de la administración

‘admin_enqueue_scripts’

Agrega los archivos en cola para las página de inicio de sesión

‘login_enqueue_scripts’
Encolamiento (Enqueue)

Funciones de encolamiento

wp_enqueue_style();

wp_enqueue_script();
Encolamiento (Enqueue)

Encola una hoja de estilos

wp_enqueue_style(
string $handle,
string $src = ‘’,
array $deps = array(),
string|bool|null $ver = false,
string $media = ‘all’,
);
Encolamiento (Enqueue)

Encola un archivo de javascript

wp_enqueue_script(
string $handle,
string $src = ‘’,
array $deps = array(),
string|bool|null $ver = false,
bool $in_footer = false,
);
Registro

Funciones de registro

wp_register_style();

wp_register_script();
Registro

Registra una hoja de estilos

wp_register_style(
string $handle,
string $src = ‘’,
array $deps = array(),
string|bool|null $ver = false,
string $media = ‘all’,
);
Registro

Registra un archivo de javascript

wp_register_script(
string $handle,
string $src = ‘’,
array $deps = array(),
string|bool|null $ver = false,
bool $in_footer = false,
);
Dequeue | Deregister

Permite quitar de la cola un archvo de hoja de estilos CSS

wp_dequeue_style();

Permite quitar de la cola un archivo de Javascript JS

wp_dequeue_script();

Permite quitar un registro de un archivo CSS

wp_deregister_style();

Permite quitar un registro de un archivo JS

wp_deregister_script();
Taxonomías

¿Qué son las taxonomías?


Taxonomías

Taxonomía

Términos Términos Términos Términos

Hijo 1 Hijo 2 Hijo 1


Taxonomías

Marcas

Volskwagen Audi

Renault

Automóviles Camionetas Pick Up


Taxonomías

Registrnado una taxonomía

register_taxonomy(
string $name_taxonomy,
array|string $post_type,
array|string $args array()
);

Uso común dentro del gancho de acción ‘init’

add_action( ‘init’, ‘function_name’ );


Taxonomías

Funciones para obtener los términos de una taxonomía

the_terms()
get_the_term_list()
wp_tag_cloud()
get_terms()
Metadatos de los términos

Funciones para manipular los metadatos de los términos de una taxonomía

add_term_meta()
get_term_meta()
update_term_meta()
delete_term_meta()
Usuarios
Usuarios

Roles Algunas capacidades

Super Admin delete_posts


Administrador delete_published_posts
Editor edit_posts
Autor edit_published_posts
Colaborador publish_posts
Suscriptor read
Usuarios

Agregar un usuario

wp_create_user();

wp_insert_user();
Usuarios

Agregar un usuario

wp_create_user(
string $username,
string $password,
string $email = ‘error’
);

Funciones de ayuda

username_exists();
email_exists();
wp_generate_password();
Usuarios

Agregar un usuario

wp_insert_user(
array|object|WP_User $userdata
);
Usuarios

Obteniendo información de un usuario

get_userdata( int $user_id )


get_user_by( string $field, int|string $value )
new WP_User( int $id )
new WP_User( string $user_login );
WP_User::get_data_by( string $field, int|string $value )
Usuarios

Actualiza los usuarios

wp_update_user( array|object|WP_User $userdata )


Usuarios

Eliminando usuarios

wp_delete_user( int $id, int $reassign = null )


Metadatos de Usuarios

Funciones para la manipulación de los metadatos de usuario

add_user_meta()
get_user_meta()
update_user_meta()
delete_user_meta()

Ganchos para los metacampos de usuario

user_new_form -> Página de agregar usuario


user_register -> Para guardar desde la página de agregar usuario

show_user_profile -> Página del perfil del usuario activo


personal_options_update -> Guardar desde el perfil de usuario activo

edit_user_profile -> Página de edición de un usuario


edit_user_profile_update -> Guardar desde la página de edición de un usuario
Manipulando los Roles

Funciones básicas

add_role( string $role, string $display_name, string $capabilities )


remove_role( string $role )
get_role( string $role )

Función que retorna una instancia del Objeto WP_Roles

wp_roles()

Métodos del Objeto WP_Roles para la manipulación de los Roles

WP_Roles::add_role( $role, $display_name, $capabilities )


WP_Roles::remove_role( $role )
WP_Roles::get_role( $role )
Manipulando el Rol de un usuario

Propiedad del Objeto WP_User para obtener información de roles de un usuario

WP_User->roles

Métodos del Objeto WP_User para la manipulación de los Roles en los usuarios

WP_User::add_role( $role, $display_name, $capabilities )


WP_User::remove_role( $role )
WP_User::set_role( $role )
Manipulando las capacidades (Rol)

Métodos del Objeto WP_Roles para la manipulación de las capacidades del un rol

WP_Roles::add_cap( $role, $cap, $grant = true )


WP_Roles::remove_cap( $role, $cap )
Manipulando las capacidades (Usuario)

Métodos del Objeto WP_Roles para la manipulación de las capacidades del un rol

WP_User::add_cap( $cap, $grant = true )


WP_User::remove_cap( $cap )
WP_User::has_cap( $cap ó $role )
WP_User::get_role_caps()
WP_User::remove_all_caps()

Propiedad para obtener todas las capacidades de un usuario

WP_User->allcaps
Usuarios

Métodos, propiedad y funciones que no pueden faltar

WP_Roles::get_names()
WP_Roles->role_names
WP_Roles::is_role( $role )

WP_User::has_prop( $key )
WP_User::exists()

user_can( int|object $user, $capability)


current_user_can( $capability )
HTTP

HTTP

HyperText Transfer Protocol


Protocolo de Transferencia de Hipertexto
HTTP

Modelo gráfico de una petición HTTP

http://www.servidor.com/pagina.html

Cliente Protocolo Servidor Disco


Petición

Respuesta
HTTP

Métodos HTTP

GET POST HEAD

PUT DELETE TRACE CONNECT


HTTP

Código numéricos de respuesta

Códigos
Descripción
de estado

2xx La solicitud se ha realizado correctamente.

3xx La solicitud se ha redirigido a otra URL.

La solicitud ha fallado debido a un error del cliente.


4xx Autenticación normalmente inválida o datos perdidos

La solicitud ha fallado debido a un error del servidor.


5xx Archivos de configuración comúnmente ausentes o mal configurados
HTTP

Códigos de respuesta más usados

Códigos Descripción
de estado

200 OK - La solicitud se ha realizado correctamente.

301 El recurso fue movido permanentemente

302 El recurso se trasladó temporalmente

403 Prohibido - Normalmente debido a una autenticación no válida

404 Recurso no encontrado

500 Error de servidor interno

503 Servicio no disponible


Peticiones HTTP

Funciones de WordPress para las peticiones comunes

wp_remote_get( string $url, array $args )


wp_remote_post( string $url, array $args )
wp_remote_head( string $url, array $args )

Función para realizar cualquier tipo de petición (get, post, head, put, delete, trace, connect)
wp_remote_request( string $url, array $args ) $args = [“method”=>“delete”]

Parámetros por defecto de los argumentos para alterar el comportamiento


y encabezados de la petición

method – GET
timeout – 5 – Cuánto tiempo esperar una conexión inactiva para cerrarla
redirection – 5 – Cuántas veces seguir las redirecciones.
httpversion – 1.0
blocking – true – ¿Debería esperar el resto de la página para terminar de cargar
hasta que esta operación esté completa?
headers – array()
body – null
cookies – array()
Peticiones HTTP

Función para obtener directamente el cuerpo de respuesta

wp_remote_retrieve_body( array $response )

Función para obtener directamente el código de respuesta

wp_remote_retrieve_response_code( array $response )

Funciones para obtener todos los encabezados o uno en específico

wp_remote_retrieve_headers( array $response )

wp_remote_retrieve_header( array $response, string $header )


Caché

Funciones transitorias para el almacenamiento en caché

set_transient( string $transient, mixed $value, int $expiration )


get_transient( string $transient )
delete_transient( string $transient )
jQuery Ajax

Función para localizar un objeto dentro de un archivo de javascript

wp_localize_script(
string $handle,
string $object_name,
array $l10n
)

Verifica la solicitud de AJAX para evitar procesar solicitudes externas al sitio web.

check_ajax_referer(
int|string $action = -1,
false|string $query_arg = false,
bool $die = true
)
Heartbeat API

Se activan cuando están en entornos conectados


Filtra la respuesta Heartbeat-send enviada desde el front-end
add_filter( ‘heartbeat_send’, ‘function_name’, 10, 3 )
@param ( array $response | string $screen_id )

Filtra la respuesta enviada por el evento Heartbeat send o el método enqueue


add_filter( ‘heartbeat_received’, ‘function_name’, 10, 3 )
@param ( array $response | array $data | string $screen_id )

Se activa cuando recibe los datos devueltos por el filtro heartbeat-received


add_action( ‘heartbeat_tick’, ‘function_name’, 10, 2 )
@param ( array $response | string $screen_id )

Se activan cuando están en entornos sin privilegios (No conectados)


Filtra la respuesta Heartbeat-send enviada desde el front-end
add_filter( ‘heartbeat_nopriv_send’, ‘function_name’, 10, 3 )
@param ( array $response | string $screen_id )

Filtra la respuesta enviada por el evento Heartbeat send o el método enqueue


add_filter( ‘heartbeat_nopriv_received’, ‘function_name’, 10, 3 )
@param ( array $response | array $data | string $screen_id )

Se activa cuando Heartbeat ticks se ejecuta


add_action( ‘heartbeat_nopriv_tick’, ‘function_name’, 10, 2 )
@param ( array $response | string $screen_id )
Heartbeat API

Eventos Heartbeat jQuery


Evento para enviar datos al servidor
$(document).on( 'heartbeat-send', function( event, data ) { code... } )

Evento a la espera de la respuesta del servidor recibida por el navegador


$(document).on( 'heartbeat-tick.myname', function( event,data,textStatus,jqXHR ) { code... } )

Evento se activa cuando se recibe un error al enviar los datos


$(document).on( 'heartbeat-error', function( event, jqXHR, textStatus, error ) { code... } )

Evento se activa cuando se pierde la conexión


$(document).on( 'heartbeat-connection-lost', function( event, error, status ) { code... } )

Evento se activa cuando la conexión es restaurada


$(document).on( 'heartbeat-connection-restored', function( event ) { code... } )

Evento se activa cuando un nonce ha expirado


$(document).on( 'heartbeat-nonces-expired', function( event ) { code... }
Heartbeat API

Métodos Heartbeat jQuery

Método que permite modificar el intervalo de ejecución


de los eventos Heartbeat en Javascript

wp.heartbeat.interval( int|string seg, int ticks )

Encola los datos a un manejador (handle) y los envia usando el método AJAX en Javascript

wp.heartbeat.enqueue( string handle, mixed data, bool noOverwrite )

Verifica si hay datos enlazados a un manejador

wp.heartbeat.isQueue( string handle )

Elimina los datos enlazados a un manejador

wp.heartbeat.deQueue( string handle )

Obtiene los datos encolados a un manejador

wp.heartbeat.getQueueItem( string handle )

Verifica si actualmente hay un error de conexión

wp.heartbeat.hasConnectionError() return boolean


Heartbeat API

Configuraciones
Filtro para cambiar algunas configuraciones del Heartbeat
add_filter( ‘heartbeat_settings’, ‘function_name’, 10, 1 )
@param ( array $settings )
$settings[‘ajaxurl’] = admin_url(‘admin-ajax.php’)
$settings[‘minimalInterval’] = 15
$settings[‘interval’] = 15-120
$settings[‘suspension’] = ‘disabled’

Forma de frenar o desactivar el Heartbeat de nuestro sitio web


add_filter( ‘init’, ‘function_name’, 1 )
wp_deregister_script( ‘heartbeat’ )
WIDGETS

Inicia sesión con tu cuenta

Inicia sesión con tu cuenta


Usuario
Usuario

Contraseña

Recordar
Contraseña

INICIAR SESIÓN
Recordar

INICIAR SESIÓN
WIDGETS

Función que permite registrar un Widget con el gancho ‘widgets_init’


register_widget( string $widget_class );

Forma de crear la clase extendiendola de la clase WP_Widget


class MP_Widget extends WP_Widget { ... }

Método constructor padre para iniciar la instancia de la clase


public function __construct {
parent::__construct(
string $id_base,
string $name,
array $widget_options = array(),
array $control_options = array()
)
}
WIDGETS

Método para imprimir el contenido del widget


public function widget( string $widget_class, array $instance );

Método para actualizar una instancia del widget


public function update( array $new_instance, array $old_instance);

Método para crear los campos del formulario de actualización


public function form( string $instace );
WIDGETS

Construye los atributos de id para su uso en los campos del método form()
$this->get_field_id( string $field_name );

Construye los atributos name para su uso en los campos del método form()
$this->get_field_name( string $field_name );
WP CRON

Tiempo UNIX

UTC del 1 de enero de 1970

1501300291
Hora y fecha: [ 22 : 51 : 31 ] 28 / 07 / 2017 (+0500)
ISO 8601: 2017-07-28T22:51:31+05:00
RFC 2822: Fri, 28 Jul 2017 22:51:31 +0500
WP CRON

Ejemplo de programación con WP-CRON

Fecha de programción y ejecución de la tarea: 2:00 PM


con intervalos de 300 segundos (5 minutos)
Próxima ejecución: 2:05 PM

Próxima ejecución: 2:10 PM


Próxima ejecución: 2:15 PM

Intervalos predeterminados

‘hourly’ Cada hora


‘twicedaily’ Dos veces al día
‘daily’ Diariamente
WP CRON

Función que permite programar un evento periódico / recurrente


wp_schedule_event(
ing $timestamp,
string $recurrence,
string $hook,
array $args = array()
)

Función que permite programar un evento que se ejecute una sola vez
wp_schedule_single_event(
ing $timestamp,
string $hook,
array $args = array()
)

Recupera la siguiente marca de tiempo de un evento


wp_next_scheduled( string $hook, array $args = array() );
WP CRON

Función que permite desprogramar un evento previamente programado.


wp_unschedule_event(
ing $timestamp,
string $hook,
array $args = array()
)

Función que permite desprogramar todos los eventos asociados a un gancho


wp_clear_scheduled_hook(
string $hook,
array $args = array()
)

Función que permite recuperar el valor de recurrencia específicado a un evento.


wp_get_schedule( string $hook, array $args = array() )
WP CRON

Función que permite recuperar los horarios de repetición de eventos compatibles.


wp_get_schedules()

Función que permite recupera un array con la información de CRON


_get_cron_array()

Filtra los horarios CRON predeterminados y permite agregar personalizados


add_filter( ‘cron_schedules’, ‘function_name’ );
@param ( array $settings ) [ ‘interval’ => int ], [ ‘display’ => string ]
INTERNACIONALIZACIÓN

¿Qué es la
Internacionalización?
INTERNACIONALIZACIÓN

i18n

1 18

Internationalization
INTERNACIONALIZACIÓN

¿Por qué es importante


la Internacionalización?
LOCALIZACIÓN

¿Qué es la
Localización?
Abreviatura

l10n

1 10

Localization
Archivos de Localización

POT ( Portable Object Template ) Plantilla de Objeto Portable

1 #: ruta1/archivo.php:12 ruta2/archivo.php:17
2 msgid "User Social"
3 msgstr " "

POT
Archivos de Localización

PO ( Portable Object ) Objeto Portable

1 #: includes/mp-menu.php:150
2 msgid "User Social"
3 msgstr "Usuarios Social"
PO
Archivos de Localización

MO ( Machine Object ) Objeto Máquina ( Binario )

01001101 01101001
10011011 10100111
01001010 11010011
MO
Archivos de Localización

Procesos
Traducción Compilación Binaria

ES ES Español
PO MO

EN EN Inglés
POT PO MO

FR FR Francés
PO MO
Funciones de traducción

Funciones Básicas

__( str $text, str $domain = 'default' )


_e( str $text, str $domain = 'default' )
_x( str $text, str $context, str $domain = 'default' )
_ex( str $text, str $context, str $domain = 'default' )
_n( str $text, str $plural, int $number, str $domain )
_nx( str $text, str $plural, int $number, str $context, str $domain )
_n_noop( str $text, str $domain = null )
_nx_noop( str $text, str $domain = null )
_translate_nooped_prular( arr $nooped_plural, int $count, str $domain )
Funciones de traducción

Funciones de traducción y escape

esc_html__( str $text, str $domain = 'default' )


esc_html_e( str $text, str $domain = 'default' )
esc_html_x( str $text, str $context, str $domain = 'default' )
esc_attr__( str $text, str $domain = 'default' )
esc_attr_e( str $text, str $domain = 'default' )
esc_attr_x( str $text, str $context, str $domain = 'default' )

Funciones de fecha y número

number_format_i18n( float $number, int $decimals )


date_i18n(
str $dateFormatString,
bool|int $unixtimestamp = false,
bool $gmt = false
)
Funciones de traducción

Paso de cadenas básicas y de variables

echo __( 'Mi ciudad es %s.', 'mitextdomain' )

_e( 'Mi ciudad es %s.', 'mitextdomain' )

printf(
__( 'Mi ciudad es %s.', 'mitextdomain' ),
$city
);

sprintf(
__( 'Mi ciudad es %s.', 'mitextdomain' ),
$city
);
Pluralización Básica

1 mensaje
5 mensajes
Pluralización Básica

Permite cambiar el texto en singular o plurar dependiendo de los elementos

_n(
str $singular,
str $plural,
int $number,
str $domain
)
Pluralización

Funciones para realizar pluralizaciones para su uso más tarde

_n_noop()
_nx_noop()
translate_nooped_plural()
Desambiguación por contexto

Post link
Desambiguación por contexto

Un enlace a la publicación
o
Enviar un enlace
Desambiguación por contexto

Funciones para desambiguar por contexto

_x()
_ex()
_nx()
_nx_noop()
Instancia Objeto Global $wpdb

class wpdb {
// ...
}
Instancia Objeto Global $wpdb
Consulta de variable, fila y columna específica
$wpdb->get_var( str $query, int column_offset, int row_offset )
$wpdb->get_row( str $query, int output_type, int row_offset )
$wpdb->get_col( str $query, int column_offse )

Consultas predefinidas

$wpdb->get_results( str $query, str output_type )


$wpdb->insert( str $table, arr $data, arr|str $format )
$wpdb->replace( str $table, arr $data, arr|str $format )
$wpdb->update( str $table, arr $data, arr $where, arr|str $format, arr|str $where_format )
$wpdb->delete( str $table, arr $where, arr $where_format = null )

Consultas generales
$wpdb->query( str $query )

Preparando consultas para proteger contra ataques de inyección SQL


$wpdb->prepare( str $query, arr|mixed $args )
Instancia Objeto Global $wpdb

Mostrar u Ocultar errores

$wpdb->show_errors()
$wpdb->hide_errors()

Imprimiendo el error generado por la más reciente consulta


$wpdb->print_error()

Obteniendo información de las columnas


$wpdb->get_col_info( str $type, int offset )

Borra la caché de resultados SQL


$wpdb->flush()
Instancia Objeto Global $wpdb

Propiedades

$wpdb->insert_id
$wpdb->show_errors
$wpdb->num_queries
$wpdb->last_query
$wpdb->last_error
$wpdb->queries
$wpdb->last_result
$wpdb->col_info
$wpdb->insert_id
$wpdb->num_rows
$wpdb->prefix
$wpdb->base_prefix

Multisitio

$wpdb->blogid
$wpdb->siteid
Instancia Objeto Global $wpdb

Referencias de las tablas de WordPress

$posts
$postmeta
$comments
$commentmeta
$termmeta
$terms
$term_taxonomy
$term_relationships
$users
$usermeta
$links
$options
Instancia Objeto Global $wpdb

$wpdb
Instancia Objeto Global $wpdb

global $wpdb
$GLOBALS['wpdb']
Métodos $wpdb

Consulta de variable, fila o columna específica


$wpdb->get_var( str $query, int column_offset, int row_offset )
$wpdb->get_row( str $query, int output_type, int row_offset )
$wpdb->get_col( str $query, int column_offset )
Métodos $wpdb

Columnas

0 1 2 3
id nombre apellido teléfono
Filas

0 1 Gilbert Rodríguez 300000000


1 2 Pablo Marmol 555555555
2 3 Luisa Simpson 777777777
Métodos

Consultas predefinidas

$wpdb->get_results( str $query, str output_type )


$wpdb->insert( str $table, arr $data, arr|str $format )
$wpdb->replace( str $table, arr $data, arr|str $format )
$wpdb->update( str $table, arr $data, arr $where, arr|str $format, arr|str $where_format )
$wpdb->delete( str $table, arr $where, arr $where_format = null )
Métodos

Consultas generales
$wpdb->query( str $query )
Métodos

Preparando consultas para su protección contra ataques de inyección SQL


$wpdb->prepare( str $query, arr|mixed $args )
Métodos

Mostrar u Ocultar errores

$wpdb->show_errors( bool $show = true )


$wpdb->hide_errors()

Imprimiendo el error generado por la más reciente consulta


$wpdb->print_error( str $str )
Métodos

Obteniendo información de las columnas


$wpdb->get_col_info( str $type, int offset )

Borra la caché de resultados SQL


$wpdb->flush()
Propiedades

Propiedades

$wpdb->insert_id
$wpdb->show_errors
$wpdb->num_queries
$wpdb->last_query
$wpdb->last_error
$wpdb->queries
$wpdb->last_result
$wpdb->col_info
$wpdb->insert_id
$wpdb->num_rows
$wpdb->prefix
$wpdb->base_prefix

Multisitio

$wpdb->blogid
$wpdb->siteid
Marcos de Gestión Multimedia

¿Para qué sirve el objeto


wp.media?
Marcos de Gestión Multimedia

¿Qué es Backbone?
Marcos de Gestión Multimedia

Encola todos los archivos necesarios para poder utilizar el objeto wp.media
wp_enqueue_media()

Devuelve un flujo de trabajo multimedia


wp.media( obj { atributos })
@atributos obj
str frame : // [ ‘select’, ‘post’, ‘image’, ‘audio’, ‘video’, ]
str title : // ‘Mi título del marco’
bool multiple : // Activa o desactiva la selección múltiple
obj button : { str text } // ‘Texto del botón de selección
obj library : {
str order : // ASC|DESC
str orderby : // [ 'name', 'author', 'date', 'title', 'modified',
// 'uploadedTo', 'id', 'post__in', 'menuOrder ]
str type : // tipo mime. Ej: ‘image’, ‘image/jpeg’, ‘video’
bool search : null // Busca el título del archivo adjunto
int uploadedTo : null // Adjunto a un post específico (ID)
}

You might also like