¿Qué recursos recomienda para aprender el desarrollo de WordPress (buscando crear temas / complementos personalizados para sitios web personalizados)?

DESARROLLO DE PLUGIN EN WORDPRESS

(Para principiantes)

¿Entonces decidiste convertirte en un desarrollador de plugins de WordPress? ¿Qué debe saber sobre WordPress antes de comenzar? (https://managewp.com/14-surprisi…)

Usar WordPress es fácil desde el lado del usuario y, debido a que es de código abierto, también es barato o gratuito. (Algunos complementos básicos son gratuitos y algunos premium o un poco más avanzados son pagaderos).

Porque es barato, mucha gente lo está usando. Los usuarios pueden usarlo como una plataforma de blog o un CMS (sistema de gestión de clientes) o simplemente como una página dinámica. No es realmente adecuado para empresas más grandes, pero debido a que es una plataforma enorme, es bastante seguro. La gente está probando las versiones en busca de errores y vulnerabilidades y ayuda con las correcciones.

Debido a que muchas personas usan WordPress, muchos desarrolladores están desarrollando complementos y temas para que tenga una gran comunidad detrás de usted para cualquiera de sus preguntas. Debido a que es tan ampliamente utilizado, es probable que alguien ya haya hecho lo que está tratando de hacer y alguien haya tenido el mismo problema exacto que enfrenta o un problema similar. Entonces, cuando te quedas atascado, puedes obtener ayuda en los foros de WordPress. Se necesita un poco de ajuste para programar la forma de WordPress, pero en general es una plataforma con la intención de permanecer y mejorar cada vez más y tiene la opción y la capacidad de ser parte de ella.

Instalación de WordPress

Esta parte puede parecer complicada al principio, pero en realidad es bastante fácil. Necesitará una instalación de servidor local y una plantilla de WordPress.

  • Si todavía no tiene nada en mente, puede intentar instalar el servidor EasyPhp (http://www.easyphp.org/), debe descargar EasyPhp Development Server. Si todo se configuró correctamente, entonces podría instalar WordPress a través de la sección Módulos / Módulos recomendados en la página de inicio del servidor. Si encuentra algún problema, intente consultar esta guía (http://quirm.net/2011/05/05/inst…)
  • ¡Actualizar WordPress es crucial! Debido a que algunas partes de WP pueden cambiar y también puede cambiar el comportamiento de su complemento. No es difícil de hacer, ya que el proceso es automático y todo lo que tiene que hacer es hacer clic en el botón Actualización automática en el menú Panel.
  • IDE: puede usar PhpStorm ya que proporciona una buena integración de WordPress si está configurado correctamente, pero también puede probar NetBeans

Cómo empezar

Para que WordPress reconozca su archivo como un complemento, debe crear una plantilla de complementos

Puede hacerlo utilizando una herramienta como (WordPress Plugin Boilerplate Generator | Listo para usar WordPress Plugin Boilerplate) o agregando la sección requerida manualmente al comienzo de su archivo php. No necesita finalizar el archivo php con etiquetas de cierre (?>), Se recomienda que no use etiquetas de cierre (algo que ver con el análisis WP).

* / <? php
/ *
* Nombre del complemento: nombre del complemento
* URI del complemento: URI del complemento
* Descripción: Descripción de lo que hace este complemento
* Versión: valor numérico como 1.0
* Autor: Nombre del autor.
* Autor URI: URI del autor
* Licencia: GPL2 (generalmente es GPL2 debido a la plataforma abierta WP)
* /

Sus mejores amigos mientras programa en WordPress son Codex https://codex.wordpress.org/ y WordPress Stack exchange http://wordpress.stackexchange.com/. También existe el foro oficial de soporte de WordPress, pero las respuestas son bastante lentas, pero quizás pueda encontrar una respuesta a sus preguntas (https://wordpress.org/support/).

WP usa ganchos que son filtros y acciones para implementar cosas en las páginas de WP. (http://codex.wordpress.org/Plugi…).

Los dos ganchos que debe tener cada complemento son register_activation_hook (); (https://codex.wordpress.org/Func…) y register_deactivation_hook (); (https://codex.wordpress.org/Func…).

Esto se utiliza cuando se instala un complemento y luego el usuario lo activa o desactiva.

Los parámetros para la función son dos, el primero es la ruta del archivo de un complemento y el segundo es la función. Entonces el gancho se ve así:

register_activation_hook (__ FILE__, name_of_the_function);

Y lo mismo ocurre con el gancho de desactivación. Cuando usa la función en el enlace de activación, significa que algo debe suceder inmediatamente cuando se activa el complemento. Por lo general, se usa para crear tablas personalizadas que deben estar presentes de inmediato. No olvides soltar tablas personalizadas cuando el usuario elimine el complemento. Para hacerlo, cree un nuevo archivo php llamado uninstall.php y agregue el código:

// solo ejecuta el contenido de este archivo si el complemento realmente se está desinstalando
if (! define (‘WP_UNINSTALL_PLUGIN’)) {
salida ();
}
//¡¡Nota!!
// Los ganchos de activación y desactivación se agregan automáticamente si usa la herramienta de plantilla wppb.me.

Las acciones (https://codex.wordpress.org/Plug…) se usan cuando desea agregar algo a la página de WP como scripts externos, estilos, tipos de publicaciones personalizadas, menús de administración, etc. Tiene cuatro parámetros, pero solo dos son generalmente utilizado, WP define el primero y debe usar Codex para encontrar cuál necesita, pero los más comunes son init (en la inicialización), admin_menu (cuando se está procesando el menú admin), wp_ajax_your_name (para las llamadas ajax ), add_meta_boxes (para agregar meta cuadros), save_post (usado para guardar los datos), the_content (usado cuando necesita agregar algo al front-end).

add_action ($ hook, $ function_to_add, $ priority, $ accept_args);

(https://codex.wordpress.org/Func…)

Por lo general, son solo los dos primeros parámetros:

add_action (‘init’, nombre_función);

Los filtros también son algo acciones. (https://wordpress.org/support/to…, http: //wordpress.stackexchange.c…, http://code.tutsplus.com/article… etc.)

Aceptan cuatro argumentos, pero no todos son obligatorios. Por lo general, se utilizan los dos primeros.

add_filter ($ hook, $ function_to_add, $ prioridad, $ accept_args);
add_filter (‘the_title’, ‘function_name’);

Los nombres de funciones siempre deben tener algunos prefijos únicos, por lo que los complementos diferentes con los mismos nombres de funciones no colisionan. Por ejemplo, si está desarrollando un complemento y lo nombró mi nuevo complemento, todas sus funciones deberían ser algo como mnp_name_of_the_function.

Agregar archivos externos a su complemento

En WP no puede simplemente incluir un archivo js externo como lo haría en php con include ‘name_of_the_file’; puede incluir un archivo php con la instrucción include , require , require_once , según sus necesidades.

Para incluir archivos js, usando ajax y jQuery necesita usar un enlace para registrar o poner en cola un script. Para archivos externos, agrega un enlace generalmente en admin o admin init o simplemente init, por lo que hay diferentes formas de hacerlo. Puedes hacerlo de esta manera:

add_action (‘admin_init’, function_name);
función nombre_función () {
wp_register_style (‘name_of_the_script’ ‘, plugins_url (‘ css / admin-styles.css ‘, __FILE__));
wp_register_script (‘nombre_del_script’, plugins_url (‘js / admin.js’, __FILE__));
}

El nombre de la secuencia de comandos debe ser único, ya que se utiliza como un identificador para su uso posterior con wp_enqueue_script (). Plugins_url se utiliza para la ruta del archivo, donde se encuentra el archivo. No desea codificarlo, porque nunca sabe dónde tendrá las carpetas el usuario, porque WP es flexible con sus carpetas.

wp_enqueue_scripts es el gancho adecuado para usar cuando se colocan en cola elementos que deben aparecer en el front-end. A pesar del nombre, se usa para poner en cola tanto los scripts como los estilos.

add_action (‘wp_enqueue_scripts’, ‘function_name’);
función nombre_función () {
wp_enqueue_style (‘core’, ‘name_of_the_css.css’);
wp_enqueue_script (‘nombre-js’, ‘nombre_del_archivo.js’);
}

Usualmente haces dos add_action separadas con un nombre para scripts y el otro para estilos, pero solo por mostrar el ejemplo lo hice en una función.

Para usar ajax y jQuery en WordPress con su archivo js, ​​debe decirle a wp qué quiere usar. Entonces, en la acción y función que creamos anteriormente, necesitamos agregar una matriz en la que agreguemos jQuery. JQuery ya está en WP, por lo que solo tenemos que decirle a WP que nuestro js está usando jQuery y lo hacemos agregando jQuery a una matriz de nuestra función de cola js.

add_action (‘admin_init’, function_name);
función nombre_función () {
wp_enqueue_script (‘nombre_del_script’, plugins_url (‘js / admin.js’, dirname (__FILE__)), array (‘jQuery’));

Para ajax es un poco más complicado y le sugiero que lea detenidamente sobre esto en la red y no confíe en mis datos aquí, porque ajax todavía me confunde. (http://solislab.com/blog/5-tips-…)

En la función anterior, agrega después del js enqueuer una nueva línea de código:

wp_localize_script (‘name_of_the_script’, ‘Handle_name’, array (‘ajaxurl’ => admin_url (‘admin-ajax.php’)

admin-ajax.php maneja todo el ajax para WordPress, por lo que debe llamarlo.

La secuencia de comandos de localización se utiliza cuando desea acceder a los datos de php en archivos js, para que los datos de php estén disponibles en sus archivos js. Debe usar wp_register o wp_enqueue para que wp_localize pueda funcionar. En los parámetros necesitamos agregar el nombre del script que es el mismo que el nombre de la llamada js. El segundo parámetro es el identificador que usará en ajax como:

Handle_name.ajaxurl

(https://codex.wordpress.org/AJAX…)

Entonces necesitas manejar el ajax. Entonces, primero debes engancharlo con add_action.

Se llama a wp_ajax_nopriv_ {nombre} cuando los usuarios registrados y no registrados tienen acceso al ajax. Si desea que solo los usuarios registrados tengan acceso a usted, use wp_ajax_ {name}.

add_action (‘wp_ajax_nopriv_name_ajax’, name_ajax_handle ‘);
función nombre_ajax _handle () {
// manejar la solicitud ajax
}

Eso es lo que debe hacer en el archivo php de su complemento. En el archivo js de su complemento, debe usar los identificadores que definió en el archivo php para que funcione.

Entonces se ve algo así como:

(fragmento de código)

$ .post (
Handle_name.ajaxurl,
{
acción: ‘name_ajax’,
award_action: ‘aceptar’
}

award_action: ‘accept’ se maneja en la función name_ajax _handle. Sugiero leer sobre ajax en el enlace provisto y luego googlear algunos ejemplos buenos que usan ajax y luego probarlo. Espero que mi explicación no te confunda más.

Trabajando con la base de datos en WP

Trabajar con la base de datos en WP es bastante fácil. No necesita conectarse con la base de datos como lo hace en php, donde debe especificar la base de datos, el nombre de usuario, la contraseña y abrir la conexión y cerrarla. No necesitas hacer:

función openDatabaseConnection () {
$ localhost = ‘ip’;
$ usuario = ‘nombre_usuario’;
$ pass = ‘contraseña’;
$ dbname = ‘database_name’;
$ conn = mysqli_connect (“$ localhost”, “$ usuario”, “$ pass”, “$ dbname”);
if (mysqli_connect_errno ())
{
echo “Error:” .mysqli_connect_error ();
}
return $ conn;
}
función closeDatabaseConnection ($ conn) {
mysqli_close ($ conn);
}

WordPress tiene una variable llamada $ wpdb para trabajar con la base de datos. Entonces, cada vez que necesite conectarse a la base de datos de wp, debe hacer lo siguiente:

global $ wpdb;

y luego la declaración sql como:

$ data = $ wpdb-> get_results (“SELECCIONAR * DESDE wp_users”);

Lo único que debe tener cuidado son los prefijos. WP usa prefijos para su base de datos, el prefijo predeterminado es wp, pero WordPress permite a los usuarios definir sus propios prefijos, por lo que puede ser cualquier cosa. Debido a que está desarrollando un complemento, no sabe cuál será la base de datos, por lo que debe usar un prefijo, que busca un prefijo de la base de datos y lo asigna al nombre de la tabla.

$ tablename = $ wpdb-> prefijo. “nombre_de_la_tabla”;

Entonces, en su declaración sql, entonces hace:

$ data = $ wpdb-> get_results (“SELECCIONAR * DESDE $ tablename”);

Con $ wpdb-> get_results está seleccionando resultados genéricos de varias filas. La función devuelve todo el resultado de la consulta como una matriz. Puede obtener diferentes resultados con diferentes opciones de selección. Por ejemplo, si desea seleccionar una fila, usaría $ wpdb-> get_row.

Utiliza las consultas sql estándar como INSERT, REPLACE, UPDATE y DELETE. También tiene una función de preparación que protege de los ataques de inyección sql.

Si desea ver errores de SQL u ocultarlos, use $ wpdb-> show_errors (); o $ wpdb-> hide_errors ();

También puede imprimir errores si se generan con la consulta más reciente con $ wpdb-> print_error () ;.

Para más información sobre la base de datos de WordPress: Referencia de clase / wpdb

Tipos de publicaciones personalizadas

Cuando esté desarrollando un complemento, probablemente necesitará usar un tipo de publicación personalizado para agregar una publicación personalizada a la página de WordPress. Los tipos de publicaciones personalizadas le permiten una mayor flexibilidad y puede ampliar las funcionalidades de su página. (https://codex.wordpress.org/Post…)

El tipo de publicación puede ser publicación, página, archivo adjunto, revisión y menú de navegación (puede ser cualquier otra información almacenada en un tipo de publicación personalizada). Por lo general, al menos al principio, trabajará con la publicación, la página y el menú de navegación, tal vez el archivo adjunto.

Para crear un tipo de publicación personalizado, debe seguir las normas del códice.

Primero necesita un gancho que hará un tipo de publicación personalizada en la inicialización.

add_action (‘init’, ‘function_name’); y en la función define su tipo de publicación personalizada.

Ejemplo:

función nombre_función () {
$ etiquetas = matriz (
‘name’ => _ x (‘name_of_custom_post’, ‘post type general name’),
‘singular_name’ => _ x (‘name_of_custom_post’, ‘post type singular name’),
‘add_new’ => _ x (‘name_for_add_new_post’),
‘add_new_item’ => __ (‘name_for_add_new_item’),
‘edit_item’ => __ (‘name_for_edit_post’),
‘new_item’ => __ (‘name_for_new_item’),
‘view_item’ => __ (‘name_for_view_item’),
‘search_items’ => __ (‘name_for_search_item’),
‘not_found’ => __ (‘text_to_display_for_not_found’),
‘not_found_in_trash’ => __ (‘No se encontró nada en la papelera’)
);
$ args = array (
‘labels’ => $ etiquetas,
‘public’ => verdadero,
‘publicly_queryable’ => verdadero,
‘show_ui’ => verdadero,
‘query_var’ => verdadero,
‘menu_icon’ => ‘dashicons-welcome-learn-more’,
‘rewrite’ => true,
‘capacity_type’ => ‘publicar’
),
‘jerárquico’ => falso,
‘menu_position’ => 75,
‘soporta’ => array (‘título’, ‘editor’, ‘miniatura’, ‘atributos de página’),
‘has_archive’ => verdadero
);
// registrar el tipo de publicación personalizada
register_post_type (‘slug_name_for_custom_post_type’, $ args);
flush_rewrite_rules ();

Entonces, en el conjunto de etiquetas $ solo definimos los nombres de las etiquetas para nuestro tipo de publicación personalizada, lo que verá el usuario y en el conjunto de $ args definimos el aspecto del tipo de publicación personalizada y algunas de sus funciones. En el ejemplo anterior solo hay algunas opciones, para todas las opciones se refieren al códice. Entonces, por ejemplo, show_ui => true genera la interfaz de usuario predeterminada para el tipo de publicación personalizada y menu_position => 75 significa que el menú se mostrará en el menú de administración debajo del menú de herramientas. (https://codex.wordpress.org/Func…) También puede agregar capacidades para restringir el acceso. Si desea permitir el acceso solo para el administrador y el editor, o solo para el administrador o solo para el autor, etc.

flush_rewrite_rules (); se usa para el vaciado automático de las reglas de reescritura de WordPress (generalmente debe hacerse manualmente para los nuevos tipos de publicaciones personalizadas).

Taxonomía personalizada

(https://codex.wordpress.org/Func…)

Cuando tiene un CPT (tipo de publicación personalizado), generalmente tiene algunas taxonomías personalizadas para acompañar. Puede usar el mismo enlace y función que para el tipo de publicación personalizada y simplemente agregar después de flush_rewrite_rules (); una nueva línea de código register_taxonomy ($ taxonomy, $ object_type, $ args);

Ejemplo:

register_taxonomy (
‘nombre_de_taxonomía’,
matriz (‘slug_of_CPT’),
formación(
‘label’ => ‘name_to_show’,
‘etiquetas’ => matriz (
‘name’ => _x (‘nombre’),
‘singular_name’ => ‘name_single’,
‘menu_name’ => __ (‘name_to_show_in_menu’)
),
‘show_ui’ => verdadero,
‘jerárquico’ => verdadero,
‘rewrite’ => array (‘slug’ => ‘name’),
));

Veamos algunas opciones. Nuevamente, en el ejemplo anterior no hay todas las opciones disponibles. Para ver o usar todas las opciones disponibles, consulte el códice (enlace de arriba). El primer parámetro es el nombre de su taxonomía personalizada, puede ser cualquier cosa, el segundo parámetro es el nombre de slug de CPT, que previamente agregó a CPT (slug_name_for_custom_post_type) en el primer parámetro register_ post_type, primer parámetro. Debe agregar el nombre de babosa de su CPT para que WP sepa dónde pertenecen las taxonomías personalizadas. Si desea agregar una taxonomía personalizada a la publicación “ordinaria”, simplemente coloque la babosa de esa publicación (editar). Luego tenemos una serie de etiquetas con el nombre de la taxonomía, su nombre singular y el nombre del menú (el nombre que se muestra en el menú de administración). La parte importante de este ejemplo son las opciones jerárquicas => verdaderas. Esto significa que nuestra taxonomía personalizada se define como categoría, lo que significa que tiene descendientes. Si establecemos Jerarquía => falso, significa que la taxonomía personalizada se define como etiquetas, lo que significa que no tiene descendientes. Puede agregar tantas taxonomías como desee, pero para cada taxonomía necesita agregar nuevas register_taxonomies y sus parámetros.

También puede agregar las capacidades a las taxonomías si desea restringir el acceso.

Roles y capacidades

WP utiliza diferentes roles para usuarios registrados. Super Admin tiene todos los privilegios y puede hacer cualquier cosa. El administrador está justo detrás de ellos con 6 capacidades menos. El editor está justo detrás del administrador y tiene capacidades limitadas, pero aún tiene más de un autor, colaborador y suscriptor. Entonces es el autor y colaborador y con los menos privilegios es el suscriptor que solo puede leer publicaciones. Dependiendo del rol y la capacidad del usuario, el área de administración de wp cambia. No se muestran todos los menús y con eso algunas opciones y algunas configuraciones. (https://codex.wordpress.org/Role…).

Si por alguna razón desea permitir que el autor modere todos los comentarios en la página, puede agregarle la capacidad. Necesita codificarlo o usar un complemento que lo haga por usted. No entraré en detalles sobre los roles y las capacidades porque depende de para qué los necesites. Por lo general, no necesita crear nuevas funciones o capacidades, ya que usted, como administrador de la página, tiene el “poder” de asignar funciones a los usuarios registrados. Pero a veces necesita crear un nuevo rol o simplemente agregar alguna capacidad, por lo tanto, consulte el enlace si necesita agregar un nuevo rol: https://codex.wordpress.org/Func…. Quizás un buen complemento para ver el código de roles y capacidades es el complemento Miembros (https://wordpress.org/plugins/me…).

Debe tener en cuenta los roles y las capacidades cuando cree cosas que tengan el parámetro de capacidad, como los menús de administrador.

Menús de administrador

(https://codex.wordpress.org/Admi…) Para crear un menú de administrador, por supuesto, necesita un gancho para el menú de administrador.

add_action (‘admin_menu’, ‘name_of_the_function’);

Si no está utilizando un CPT, agrega una página de menú en la función, que es como la primera página del menú.

add_menu_page ($ page_title, $ menu_title, $ capacidad, $ menu_slug, $ function, $ icon_url, $ position);

Y luego agregue submenús si los necesita. Si no necesita un submenú, puede tener una página de menú.

Función de ejemplo:

función nombre_de_la_función () {
add_menu_page (‘nombre_de_página’, ‘nombre_menú’, ‘capacidad’, ‘menú_slug’, ‘nombre_de_función’, ‘dashicons-visibilidad’);
}

Solo usamos 6 parámetros, porque no necesitamos la posición. Sin embargo, si queremos posicionar nuestro menú, simplemente escribimos el número de la posición en la que queremos que se muestre nuestro menú.

2 – Tablero

4 – Separador

5 – Publicaciones

10 – Medios

15 – Enlaces

20 – Páginas

25 – Comentarios

59 – Separador

60 – Apariencia

65 – Complementos

70 – Usuarios

75 – Herramientas

80 – Configuraciones

99 – Separador

Para el icono del menú usamos los dashicons (https://developer.wordpress.org/…). Si deseamos agregar un submenú a nuestro menú, simplemente agregamos una nueva línea de código después de la página Agregar menú. (https://codex.wordpress.org/Func…)

add_submenu_page ($ parent_slug, $ page_title, $ menu_title, $ capacidad, $ menu_slug, $ function);

add_submenu_page (‘menu_slug’, ‘name_of_the_page’, ‘name_of_the_menu’, ‘manage-options’, ‘submenu_slug’, ‘function_name’);

Debido a que estamos agregando un submenú a un menú creado con add_menu_page (), la primera página del submenú será un duplicado del padre add_menu_page (). Si queremos un submenú de esa manera, primero debe crear un duplicado de add_menu_page () y luego agregar una nueva página de submenú.

función nombre_de_la_función () {

add_menu_page (‘Mi página’, ‘Mi página’, ‘administrar-opciones’, ‘mi-menú-slug’, ‘dashicons-visibilidad’);

add_submenu_page (‘my-menu-slug’, ‘My page’, ‘My page’, ‘manage-options’, ‘my-menu-slug’, ‘my_function’);

add_submenu_page (‘my-menu-slug’, ‘My submenu’, ‘My submenu’, ‘manage-options’, ‘submenu_slug’, ‘my_second_function’);

}

Si tiene un CPT y desea agregar un submenú a la página del menú CPT, entonces su llamada al submenú debería verse así:

add_submenu_page (‘edit.php? post_type = name’, ‘Nombre de la página’, ‘Nombre de la página’, ‘opciones de gestión’, ‘slug’, ‘nombre_función’);

El cambio es el primer parámetro en el que debe escribir la ficha de su CPT y definir la página. Entonces edit.php es para el tipo de publicación personalizado y luego post_type = slug_name del tipo de publicación personalizado que asignó al crear el CPT.

La opción de gestión de capacidad es solo para súper administrador y administrador. Por lo tanto, si desea permitir el acceso a su menú de administración y submenús a otros roles / usuarios, debe cambiar la capacidad. En el enlace Roles y capacidades, se enumeran todas las capacidades y usted elige la capacidad que tienen en común los roles. Entonces, si desea permitir el acceso a los menús de administrador al administrador y al editor, su capacidad será moderada. No prestes atención al nombre. En este caso no significa nada.

En las funciones de su menú y submenú usted hace la codificación. Lo que sucede en esa página cuando el usuario hace clic en ella.

También puede agregar una página de opciones que se utiliza cuando el complemento necesita establecer algunas configuraciones para que funcionen correctamente.

add_options_page ($ page_title, $ menu_title, $ capacidad, $ menu_slug, $ function);

Por lo general, la página de opciones se muestra en el menú de administración de Configuración.

add_options_page (‘Configuración de mi complemento’, ‘Complemento de configuración’, ‘manage_options’, ‘my-menu-slug’, ‘my_options_function’);

Si desea seguir la forma de WP de mostrar las páginas de administración, debe usar su estilo.

Ejemplo:

function my_options_function () {
?>
Configuraciones para plugin
}
add_action (‘admin_init’, ‘settings_init’);
función settings_init () {
register_setting (‘plugin_options’, ‘name’);
}

Si tiene un campo, debe llamar al register_setting solo una vez, si tiene más campos, debe llamarlo tantas veces como tenga campos. Entonces, para cada campo es una llamada. Debe tener cuidado con el primer parámetro en la llamada register_settings. El primer parámetro debe coincidir con settings_fields y do_settings_fields y el segundo parámetro es el nombre de su campo. Para obtener las opciones para la página de opciones, simplemente llame a get_option (‘name_of_the_field’);

Añadir cajas Meta

Cada vez que desee agregar datos personalizados o campos personalizados a wp (en agregar nueva publicación que desea agregar algo), utilice meta cuadros o campos personalizados. No he hecho los campos personalizados, así que escribiré solo sobre meta cuadros.

Una vez más, necesita un gancho para agregar un meta cuadro add_action (‘add_meta_boxes’, ‘function_add’); y luego en su función agrega el cuadro meta.

function function_add () {
// babosa, nombre, función de devolución de llamada, tipo de publicación y prioridad: dónde mostrar el cuadro meta
add_meta_box (‘meta_box_slug’, ‘Meta box name’, ‘function_show’, ‘slug-CPT’, ‘normal’);
}

En la función function_show, realmente muestra el cuadro meta en la página de administración.

function function_show ($ post) {
// obteniendo el contenido de una publicación donde está metabox
$ almacenados_meta = get_post_meta ($ post-> ID);
// código html para mostrar realmente el metabox
?>
}

La función show acepta un parámetro que es $ post. Esto es para que podamos obtener la identificación de la publicación. También podríamos hacer una función sin el parámetro y luego simplemente llamar al $ post global en la función.

Pero aún no hemos terminado. Ahora tenemos el cuadro de meta registrado y mostrado en la página, pero si hacemos clic en Guardar publicación o Actualizar no pasa nada con nuestro cuadro de meta. Esto se debe a que necesitamos guardar el cuadro meta con la publicación en la base de datos. Hacemos eso con otro gancho add_action (‘save_post’, ‘meta_save’); y luego en la función meta_save hacemos el guardado. Estamos verificando si su guardado automático o su revisión solo regresan, no hacen nada, pero si no está guardado automáticamente y no es una revisión y el campo del cuadro meta está configurado, entonces actualizamos el mensaje meta. La publicación meta está en la base de datos de wp llamada wp_postmeta y puede ver su meta-texto recién creado.

función meta_save ($ post_id) {
$ is_autosave = wp_is_post_autosave ($ post_id);
$ is_revision = wp_is_post_revision ($ post_id);
if ($ is_autosave || $ is_revision) {
regreso;
}
if (isset ($ _POST [‘meta-text’])) {
update_post_meta ($ post_id, ‘meta-texto’, $ _POST [‘meta-texto’]);
}
}

Pero aún no hemos terminado. Si no desea mostrar el contenido del meta box en la interfaz, entonces hemos terminado y el meta box se crea y guarda. Sin embargo, si desea mostrar el contenido de meta box en la interfaz, en la página wp, debe agregarlo al tema. Debido a que está desarrollando un complemento y no tiene acceso a los temas que está utilizando el usuario, no puede codificarlo. Aquí usamos acción para agregar cosas al contenido. Por lo tanto, debemos usar el filtro the_content para agregar algo al contenido de una página. La acción es add_action (‘the_content’, ‘meta_content’); y en la función necesitamos decidir dónde queremos mostrarlo. En este ejemplo, lo estamos mostrando en la página de publicación única single.php.

función meta_content ($ contenido) {
if (is_single ()) {
$ post global;
$ value = get_post_meta ($ post-> ID, ‘meta-texto’, verdadero);
if ($ valor) {
$ contenido. = $ valor;
}
}
devolver $ contenido;
}

Primero estamos verificando si estamos en la página única, luego estamos obteniendo la publicación y el valor de nuestro cuadro de meta recién creado. Estamos obteniendo la ID de la publicación donde está nuestro cuadro meta y el valor del campo del cuadro meta. El verdadero significa que la función devolverá un único resultado como cadena. Falso significaría que la función devolverá una matriz de meta cuadros personalizados. Luego, agregamos el nuevo valor al contenido y devolvemos el contenido nuevo + antiguo. Si no lo agregamos (si solo hacemos $ content = $ value), anulamos el contenido, mostrando así el nuevo valor, que es solo el cuadro meta sin el contenido de la publicación. Con $ content variable obtenemos el contenido de la publicación. (https://codex.wordpress.org/Func…, https://codex.wordpress.org/Func…).

WIDGETS

Lo último que hay que mencionar son los widgets. Se utilizan para mostrar algo en la interfaz. Por lo general, se usan con complementos, pero esa no es la regla. Puede crear un complemento que solo tenga un widget. Para crear un widget, toma prestada la clase WP, por lo que extiende su clase para que sea fácil de codificar. Por supuesto, debe registrar el widget.

function name_widget_init () {
register_widget (name_widget () {
}
}

Luego extiendes la clase WP_Widget y haces la codificación. La clase Widget tiene 4 funciones que necesitará usar. El primero es el constructor, donde declaras las opciones de widget y la descripción de un widget, luego llamamos a un constructor padre donde declaramos una identificación css, el nombre del widget y nuestras opciones definidas. La segunda función se usa para mostrar el widget y siempre se denomina forma de función ($ instancia). Esta función muestra nuestro widget en el área de apariencia-> widget admin de WP. Aquí agregamos las áreas de texto, cuadros, menús desplegables, etc. También guardamos la entrada del usuario. (si tenemos un cuadro de texto donde el usuario puede ingresar el título del widget). La función Siguiente es una función para actualizar los valores antiguos con valores nuevos y siempre se denomina actualización de función ($ new_instance, $ old_instance). Aquí estamos guardando el formulario del widget obteniendo los valores del usuario y reemplazando la instancia anterior por una nueva (nuevo valor). La última función es mostrar el widget en la interfaz, de modo que se lo muestre al usuario y el nombre suele ser widget de función ($ args, $ instancia). Aquí aplica algunos filtros al título y luego muestra el widget al comienzo del contenedor ($ before_widget), mostramos el título antes del título y luego lo cerramos después del título. Luego colocamos el código relevante para el widget, qué hará nuestro widget y luego cerramos la visualización del widget con echo $ after_widget.

la clase WP_Widget_name extiende WP_Widget {
función nombre_Widget () {
$ widget_options = array (
‘classname’ => ‘name_class’, // clase CSS
‘description’ => Descripción de lo que hace el widget ‘);
// llamamos a los padres constructor y agregamos nuestras opciones
$ this-> WP_Widget (‘nombre_id’, ‘nombre del widget’, $ widget_options);
}
formulario de función ($ instancia) {
$ defaults = array (‘title’ => ‘Título’); // establecer el nombre predeterminado en Título
$ instancia = wp_parse_args ((matriz) $ instancia, $ valores predeterminados); // mostrando el valor
$ title = esc_attr ($ instancia [‘título’]); // guardar la entrada de los usuarios
// mostrando el formulario
eco ‘
Título
‘;
}
actualización de función ($ new_instance, $ old_instance) {
$ instancia = $ instancia_antigua;
$ instancia [‘título’] = strip_tags ($ nueva_instancia [‘título’]);
devolver $ instancia;
}
widget de función ($ args, $ instancia) {
// extraer vars para que estén disponibles como variables
extracto ($ args);
$ title = apply_filters (‘widget_title’, $ instancia [‘title’]);
echo $ before_widget;
// antes del comienzo del título, mostramos el título y terminamos el título
echo $ before_title. $ title. $ after_title;
// aquí va el código para el widget, ecos, etc.
// fin del widget
echo $ after_widget;
}
}
}

Esto es para las cosas “básicas” con WordPress. No se sienta frustrado si necesita algo de tiempo para comprenderlo todo, WP siempre está desarrollando y expandiendo y agregando cosas nuevas y nuevas formas de hacer las cosas. Así que no piense que la forma descrita en el documento es la única, porque no lo es. Todos los codificadores tienen sus estilos y verás cuál es el tuyo con WP cuando comiences a desarrollar tus primeros complementos. Depende principalmente de qué tutoriales sigas y cuál sea su estilo de codificación. Sin embargo, tenga cuidado porque WP tiene algunas reglas sobre cómo hacer las cosas correctamente. Así es como está el códice.

También soy muy nuevo en el desarrollo de WP y todavía estoy aprendiendo, así que probablemente cometí algunos errores en el código y algunas partes del código podrían mejorarse. Sin embargo, tienes que comenzar en alguna parte, así que esto es todo.

Recuerda que Google es tu mejor amigo cuando se trata de desarrollar para WP. No tenga miedo de hacer / publicar preguntas en el foro y si alguien ya ha hecho lo que está tratando de hacer, no tenga miedo de usar su código o parte del código. Es WP, por lo que todo el código generalmente tiene licencia GPL2.

Ciertamente, todo lo que WP permite no está cubierto en este documento, pero espero que ayude un poco.

Buena suerte en tu viaje de convertirte en un desarrollador de complementos WP.

Si eres nuevo en WordPress o quieres aprender el desarrollo de WordPress, el mejor recurso que debes considerar es el Codex de WordPress. Allí encontrará toneladas de guías potentes y estándar, como dónde comenzar, cómo usar WordPress, lecciones de WordPress y muchas más. Las guías que encontrará allí definitivamente lo ayudarán a comenzar con el desarrollo de WordPress y WordPress. También puedes consultar WP principiante. Ver también ” Hacer WordPress y Recursos para desarrolladores de WordPress ” son excelentes recursos que están alojados en WordPress.org como el Codex. Con estos recursos puede realmente mucho sobre WordPress y convertirse en un profesional de WordPress. No olvide visitarnos en Workflowwordpress donde discutimos los últimos complementos de WordPress, hermosos temas, los últimos códigos de promoción de alojamiento y todos los demás recursos que ayudarán a que la administración del sitio de WordPress sea tan fácil

Hay tantos materiales disponibles para chicos en tu situación. Debido a su título de CS, no debería tener que pasar mucho tiempo tratando de resolver todo esto. Busque en los siguientes sitios web un buen lugar para comenzar:

– WP Principiante

– WPMU

– Tuts + Code (tienen algunos cursos cortos excelentes enfocados en WP)

– Team Treehouse

– Codecademy (para experiencia práctica en Bootstrap, HTML y CSS)

Pruebe esta serie de videos para el desarrollo de temas de WordPress, fácil de seguir y su codificación real sin usar constructores de páginas, etc.