Cubriremos la creación de una página de opción de WordPress funcional sin usar la configuración de API. No me gusta la API de configuración de WordPress. Y cada vez que hablamos de escribir sobre esto, empiezo a quejarme como el niño más molesto que puedas imaginar. Me quejo porque la configuración de la API es la forma más oficial de hacer páginas con opciones de administración en WordPress, lo cual es algo importante para los complementos públicos y privados. Pero decir suavemente, encuentre la configuración de WordPress y más que un poco extraño. Pero hay partes en la creación de las páginas de opciones que realmente no involucran la configuración. Y, de hecho, no tienes que usarlo en absoluto. Hoy describiremos cómo crear una página con opciones de administración y cómo guardar una opción en todo el sitio, pero sin usar la configuración de la API.
Algo más antes de comenzar. Si quieres aprender el desarrollo de WordPress, escribí la mejor guía para ello:
¡La mejor manera de aprender el desarrollo de WordPress y ejecutar hoy!

En funcionamiento está nuestro curso completo “Aprende el desarrollo de WordPress”. Ahora, en la tercera edición actualizada y extendida, ha ayudado a cientos de compradores felices a aprender el desarrollo de WordPress de una manera rápida, inteligente y completa. Esto es lo que tienen que decir:
“Creo que cualquiera está interesado en aprender el desarrollo de WordPress necesita este curso. Ver videos era como si estuvieran muchas luces encendidas “. -Jason, desarrollador de WordPress
“Otros cursos que casi siempre he intentado no tienen explicaciones claras sobre lo que WordPress hace las cosas de cierta manera o cómo funcionan juntas. En funcionamiento hace todo esto y todo se explica claramente en un lenguaje fácil de entender “. -Carolina, freelancer y corre ahora
Primero hablaremos sobre cómo crear una página que solo aparezca en el área de administración de WordPress, luego entraremos en más detalles sobre cómo guardar y cargar las opciones en una página. Una presentación general de alto nivel de una opción de WordPress en WordPress, una página de opciones de administración es una página a la que el administrador del sitio accede a cambiar algo sobre su sitio. Cualquier página enumerada en “Herramientas” o “Configuración”, por ejemplo, es una página con opciones de administración. Y un complemento grande como WordPress SEO de Yoast podría registrar un submenú completo de administración lleno de páginas con opciones de administración:
Todas las páginas del menú de administración tienen una marca que describe al usuario que le permite modificar. Y el corazón de cada página del menú de administración es una o más configuraciones, transmitida al usuario por una web , que cambia algo sobre su sitio. Pasos básicos para crear una página de opciones de administración La creación de una página de menú de administración con configuración de trabajo tiene tres pasos principales:

Creando una página en el área de administración.
Escribir contenido de la página.
Dentro del contenido de la página, creando un formulario de trabajo que guardará la configuración que desea cambiar.
Cuando evitamos la configuración de la API, el paso 3 es el que generalmente requiere la API de configuración. Sin embargo, puede lograr el mismo objetivo creando un PHP de estilo PHP que dirán que ha hecho mal, esto funciona y reduce la complejidad incidental (es decir, el diseño de API débil) que se mueve con la configuración. API. Así que esta es una introducción de alto nivel. Lo guiaremos a través de cada paso a continuación. 1. Creación de una página en el área de administración El primer paso es hacer una página en el área de administración de su sitio. El primer paso es hacer una página en el área de administración de su sitio, que contiene el contenido de la página y . Para hacer esto, usará uno en una lista de funciones similares que tienen el mismo modelo de nombre básico: Agregar _*_ Page (). Con el correcto de estos muchachos, puede crear una nueva página de administración casi donde quiera.
El más común y más ligero de estos es el add_men_page (). Cada una de estas funciones tiene una lista bastante larga de parámetros y, desafortunadamente, estos parámetros no están en un orden muy claro. (Este es el núcleo de toda mi queja sobre esta área del código de WordPress.) Desde Codex: add_men_page ($ page_itle, $ menu_title, $ capacidad, meu_slg, $ función, $ icon_url, $ posición); Explicaré rápidamente cada parámetro:
$ Page_title es la cosa que WordPress realmente podría mostrar en la página. (Parece que en la mayoría del código, incluido el nuestro, las personas pueden renunciar al valor).
$ Menu_title es la forma en que aparecerá su página en la barra lateral. $ Capacity es la representación del sistema de capacidades de usuario de WordPress que desea que alguien pueda interactuar con esta página.
$ Menú_slg es la representación de URL segura que usará su página.
$ La función es la devolución de llamada para la función que desea reproducir su página actual.
$ icon_url es la URL (o el significante de Dashicon) que desea tener su página.
$ La posición es un número completo que determina dónde (dependiendo de la altura) debe aparecer su opción en la barra lateral izquierda, 1 es la parte superior, 99 es la parte inferior. (Consulte la guía anotada a continuación para comprenderlo más en detalle).
Solo los primeros cuatro parámetros (en $ menú_slg) son obligatorios, pero también incluiría el quinto, porque el comportamiento sin ellos está un poco confundido. Gestión de la complejidad e ilegibilidad de las funciones ADD _*_ Page (). Una de las grandes desventajas del hecho de que esta función, y la mayoría de ellas similares, requiere una gran cantidad de parámetros es que olvidará lo que todos tienen y cómo funciona con bastante rapidez. Debido a que PHP no acepta los parámetros llamados, recomendaría mantener sus parámetros muy cerca y fáciles de referirse. Lo que significa eso es que en lugar de hacer esto:
add_action (‘Admin_men’, ‘Awesome_Page_Create’);Function awesome_page_create () {add_men_page (‘My Awesome Admin Page’, ‘Awesome Admin Page’, ‘Edit_posts’, ‘Awesome_Page’, ‘my_wesome_page_display,’, 24);} Puede hacer esto: add_action (‘admin_men’, ‘impresionante_page_create’);Function awesome_page_create () {$ page_itle = ‘My Awesome Admin Page’;$ menú_title = ‘Awesome Admin Page’;$ capacidad = ‘edit_posts’;$ menú_slug = ‘Awesome_page’;$ function = ‘my_awesome_page_display’;$ icon_url = ”;$ Posición = 24;add_men_page ($ page_itle, $ menú_itle, $ capacidad, $ menú_slg, $ function, $ icon_url, $ posición);Una de mis fuentes de frustración con estas funciones (y la configuración de la API en su conjunto) es que históricamente he favorecido la primera forma de la segunda.Tiene la ventaja de ser un poco más conciso;Pero cuando regreso más tarde para tratar de mirar o cambiar el código, siempre estoy confundido.
Esta interfaz tiene demasiados argumentos para que favorezca a Concise. El segundo ejemplo compensa la falta de PHP con nombre de parámetros por el nombre del proxy y crea un código mucho más sostenible y a largo plazo. El otro agrega Agregar _*_ Page (). Como dije, todas las funciones ADD _*_ Page () son similares. En lugar de enumerarlos exhaustivamente y resaltar cuán diferente es cada uno de ellos, lo convertiré en la página del códice que los muestra a todos: API de menús de administración. Un resumen muy corto es que si no desea crear un menú de nivel superior (uno tan grande y prominente como “Panel de tablero”, “Publicaciones” o “complementos”), desea crear un submenú. Y hay una función principal que usa para esto y muchos atajos con nombres ligeramente mejores. Prácticamente, si desea crear una nueva página en el menú en la barra lateral “Postari”, sus opciones son las siguientes: $ parent_slug = ‘edit.php’; add_submenu_page ($ parent_slug, $ page_title, $ menú_title, $ capacidad, $ menú_slg, $ function); // o add_posts_page ($ page_itle, $ menú_title, $ capacidad, $ menú_slg, $ function); Debido a que ya he mencionado mi queja personal sobre las largas listas de parámetros opacos y confusos, probablemente pueda adivinar mi preferencia. La razón principal por la que usaría add_submen_page () en comparación con algo como add_posts_page (), en mi opinión, es cuando ha creado tanto los padres como los hijos, por lo que no puede usar la función de orden rápido, porque no existe.

2. Usando la función de llamada inversa para crear su página, deberá usar una función de llamada inversa para mostrar contenido en su página de corazón para crear su página de administración es el uso del parámetro de función $ para mostrar su página.Recuerde que uno de los argumentos que hemos transmitido en add_men_page () usando my_weesome_page_dissplay () arriba es el siguiente: $ function = ‘my_weesome_page_dissplay’;’my_awesome_page_display’ es una función de llamada inversa que debe definir y que contendrá la marca que se muestra en su página, puede usar algo bastante simple, como:
function my_awessome_page_display () {echo ‘
mi página !!!
‘; } Y con eso, ha creado una página de administración verdaderamente inútil. No proporciona opciones y muestra datos. Solo escribe “¡Mi página!” en la cima. Lo que probablemente desee hacer es crear una en esa página, para que las personas puedan proporcionar datos útiles a su complemento o tema y que probablemente se almacenará en las opciones de WordPress. Este es el lugar donde la API de configuración de WordPress puede ser realmente útil y puede justificar toda su complejidad. Considere dividir el formulario en un archivo separado Esto es algo que debe considerar si usa o no la configuración de la API para construir su formulario: en lugar de hacer el viceversa con una longitud de 100 líneas, incluya un archivo de plantilla separado. Puede simplificar las cosas muy bien si no llena la llamada Vice Versa con mucho eco HTML. Crear el formulario y el resto del marcado en un archivo separado que incluye se ve así: // en la función de archivo principal my_wesome_page_display () {incluir ‘form-file.php’; } // Form-File.php
Mi página de configuración increíble
Esto tiene la gran ventaja de que, en nuestro archivo principal de la página de Configuración, no Juglam con un montón de eco o con muchas etiquetas PHP que se abren y cierran. 3. Creación de un formulario de trabajo y la configuración de guardar en este momento, nuestra página sigue siendo inútil. Aquí hay un código que funciona de manera efectiva, que le dará una página de opciones de administración funcional, sin usar la configuración de API. Además, comience a resaltar algunas de las razones por las que querrá usar la API de configuración. // en la función de archivo principal my_wesome_page_display () {if (isset ($ _ post [‘amiewes_text’])) {$ valor = $ _post [‘impresionante_text’]; update_option (‘Awesome_Text’, $ valor); } $ Value = get_option (‘Awesome_Text’, ‘He-Ha’); Incluye ‘Form-File.php’; } // Form-File.php
Mi página de configuración increíble
Awesome Text <input type = "text" name = "Awesome_Text" Value = "”> ¿Qué hace esto? Como acabo de describir, Form-File.php es lo que muestra el formulario, que acabo de agregar, es toda la marca en
. Tenga en cuenta que no hemos establecido un valor compartido en nuestro formulario. Esto hará que el método de uso del formulario SA, que especifiqué, como una publicación, de regreso a la misma página. Esta forma tiene solo un campo y no hace mucho. Su único campo se llama Awesome_Text y recibe un valor de valor $ completado dinámicamente en PHP. Se proporcionará desde la ubicación de nuestra llamada de función, que incluye plantilla. Hablando de esa función, en la parte inferior se asigna un valor a la variable de valor $. PHP proporciona valores variables para incluir archivos D, por lo que nuestro formulario sabe sobre $ valor. Tenga en cuenta que obtener $ valor se realiza utilizando una llamada get_option (). Si ha leído sobre las opciones de API, puede recordar que el primer parámetro es el nombre de su opción, y el segundo es el valor (opcional) que desea volver si la opción no está configurada. Entonces, puede reescribir nuestra llamada get_option () arriba de dos maneras: $ value = get_option (‘Awesome_text’, ‘Hey-ho’); // o $ value = get_option (‘Awesome_Text’); if (false === $ valor) {$ valor = ‘hey-ho’;
Funcionan igual, pero debido a que creo que la firma y el significado de la llamada Get_option son legibles y obvios, prefiero acortar el primero. La lógica en la parte superior de la función utiliza la matriz superglobal PHP $ _post para obtener el valor enviado del formulario. Si no está familiarizado con $ _post, lo básico que debe comprender es que PHP extrae los valores de los formularios enviados en un script y los coloca en la matriz de $ _post para usted, en el índice que era el formulario. El campo con nombres de los elementos. En nuestro caso, el elemento de formulario se ha llamado Awesome_Text y obtenemos ese valor accediendo a $ _post [‘Awesome_Text’]. Finalmente, la instrucción IF al comienzo de my_weesome_page_display () usa las opciones de API nuevamente, esta vez para ahorrar $ _post [‘Awesome_text’], si está configurado, como nuevo para Awesome_Text en la base de datos. Consideraciones de seguridad de las opciones de rescate El código anterior funciona y es válido, pero tiene tres razones en precaución en términos de seguridad: no verificamos si el valor enviado proviene de un usuario que tiene permiso para cambiar la opción

No nos aseguramos de que, después de dicha verificación, el usuario tenía la intención de modificar el formulario especificado (por un nonce)
No nos aseguramos de que los datos enviados tengan la forma correcta y no contengan algo malicioso
Los detalles de por qué son importantes se pueden entender un poco mejor en nuestro manual sobre la seguridad de WordPress, pero el código básico que mejoraría estos dos primeros problemas es: // Form-File.php
Mi increíble página de configuración
<input type = "text" name = "awesome_text" value = "”> < ? php wp_nonce_field ('wpshout_option_page_example_);? Manage_options ')) {wp_die (' usuario no auTotorizado ');} check_admin_referrer ('wpshout_option_page_example');If (isset ($ _ post ['Awesome_Text'])) {update_option ('Awesome_Text', $ _post ['Awesome_Text');} $ Value = get_option ('Awesome_Text', 'He-Ha');Incluye 'Form-File.php';
} Lo que cambiamos en el código anterior es hacer cambios para que se verifique el usuario primero. Un usuario podría falsificar una solicitud a nuestro formulario y pedirle a los no administradores que editen las opciones. No queremos que esto suceda, por lo que antes de guardar los datos enviados, nos aseguramos de que el usuario tenga los permisos correctos. Después de eso, nos aseguramos de que Nonce agregamos en el formulario ajustado. Esto le asegura que un usuario que tiene los permisos correctos no puede ser tergiversable para cambiar nuestra opción por error. En ambos casos, es posible que desee considerar una gestión mejor y más elegante de una cláusula de guardia que mi WP_DIE, pero trabajarán para mantener a sus usuarios seguros. (Sin embargo, podría frustrarlos). Un último problema de seguridad que vale la pena señalar es la posibilidad de datos no válidos o maliciosos. Si nuestra opción debería, por ejemplo, ser un entero, es una buena idea asegurarse de que el valor sea un entero. Register_setting es una de las formas de lograr esta higiene, pero puede hacerlo aquí. Todo el tema de higiene y validación es demasiado grande para este artículo, pero tenga en cuenta. Las desventajas de ignorar la configuración de la API establecen el juego con variable $ _post no es inherentemente un problema, pero ciertamente no es bueno. Una de las mayores desventajas de lo que hicimos aquí, solo establecemos las opciones usando las opciones de API, es que tuvimos que escribir algunas cosas hermosas.
homefinance blog