Generador online de scripts, snippets, códigos, actions y ejemplos para WordPress
En https://generatewp.com hay multiples ejemplos y diferentes generadores de códigos para crear plugins de WordPress
En https://generatewp.com hay multiples ejemplos y diferentes generadores de códigos para crear plugins de WordPress
La idea es evitar los CSRF en WordPress.
Este es un genial post de explicación de nonces:
//Ej 1 Agregar menú en el de otro plugin. ***** FUNCIONA ******
//https://wordpress.stackexchange.com/questions/91377/admin-menu-as-submenu-from-another-plugin
add_action('admin_menu', 'submenu_woocommerce_booking_calendario', 11 ); //<=Notar la prioridad 11 para agregar en submenú de otro plugin
function submenu_woocommerce_booking_calendario()
{
add_submenu_page(
'edit.php?post_type=wc_booking', //Third party plugin Slug
'Calendario Nexo',
'Calendario Nexo',
'read', //Capability: https://codex.wordpress.org/Roles_and_Capabilities
'nexo-calendario', //El slug que aparecerá como "...&page=nexo-calendario"
'func_callback'
);
}
function func_callback()
{
echo '<h1>OK</h1>';
}
//Ej 2 Ejemplo FUNCIONANDO de agregar menú/submenú:
//https://wordpress.stackexchange.com/questions/66498/add-menu-page-with-different-name-for-first-submenu-item
add_action('admin_menu', 'my_menu_pages');
add_menu_page('My Page Title',
'My Menu Title',
'manage_options', //Capability: https://codex.wordpress.org/Roles_and_Capabilities
'my-menu', //Plugin slug
'my_menu_output_callback' );
add_submenu_page(
'my-menu', //plugin slug
'Submenu Page Title', 'Whatever You Want', 'manage_options', 'my-menu', 'callback' );
add_submenu_page('my-menu', 'Submenu Page Title2', 'Whatever You Want2', 'manage_options', 'my-menu2', 'callback' );
//Ej 3 Agrega opción al menú AJUSTES: https://developer.wordpress.org/reference/functions/add_options_page/
add_action( 'admin_menu', 'my_plugin_menu' );
function my_plugin_menu() {
add_options_page( 'My Plugin Options',
'My Plugin',
'manage_options', //Capability: https://codex.wordpress.org/Roles_and_Capabilities
'my-unique-identifier', 'my_plugin_options' );
}
function my_plugin_options() {
if ( !current_user_can( 'manage_options' ) ) {
wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
}
echo '<div class="wrap">';
echo '<p>Here is where the form would go if I actually had options.</p>';
echo '</div>';
}
Esqueleto o definición de una correcta estructura de plugin de wordpress para un código limpio y ordenado:
https://github.com/DevinVinson/WordPress-Plugin-Boilerplate
Explicación y ejemplo de uso en español:
Creación de Plugins en WordPress (II): Organización y Trucos
Documentación Oficial de WordPress: Cómo crear plugins:
https://developer.wordpress.org/plugins/intro/
https://codex.wordpress.org/es:Plugin_API
https://codex.wordpress.org/es:Escribiendo_un_Plugin
Cómo crear plugins en WordPress
( I )
Creación de Plugins en WordPress (I)
( II )
Creación de Plugins en WordPress (II): Organización y Trucos
Cómo trabajar con Hooks en WordPress desde Themes
WordPress Hooks Guía para principiantes
Cómo trabajar con Hooks creando un plugin para WordPress
https://raiolanetworks.es/blog/crear-plugin-wordpress/
La función $screen = get_current_screen()
; retorna el identificador de pantalla desde $screen->id
, el cual sirve para ser llamado desde cualquier add_action cuyo primer parametro sea add_action('el_id_del_screen','funcion_callback');
Es decir, si
$screen = get_current_screen();
//$screen->id => 'test_jlm_plugin_page_pagina_de_prueba'
add_action('test_jlm_plugin_page_pagina_de_prueba', 'se_ejecutara');
Ejecutará la función «se_ejecutara()
«
PHP Fatal error: Allowed memory size of 805306368 bytes exhausted (tried to allocate 114688 bytes) in /home/xxx/public_html/wp-includes/wp-db.php on line 2007
//Solucionar con incrementar el uso de memoria que wordpress puede hacer para sus procesosdefine('WP_MEMORY_LIMIT', '2G');