Creé mi propio complemento que permite a los usuarios suscribirse por correo electrónico. Creé la tabla mysql y cuando los usuarios se suscriben en el correo electrónico de la interfaz, se escribe en mi tabla.
Ahora necesito algunas funciones de back-end. Tengo una tabla con todos los datos de los usuarios (nombres, correos electrónicos, etc.). Pero ahora necesito eliminar y editar filas específicas.
¿Cómo puedo hacer una página de edición personalizada en el área de administración de wordpress? ¿En mi propia URL? Algo como: /wp-admin/admin.php?page=subscribe-plugin&do=edit&id=10 ? ¿Y cómo mostrar el formulario html allí? ¿Y cómo hacer una consulta de publicación entonces? ¿Para hacer cambios en la base de datos?
Leí todo el manual y el “códice”, pero no tengo idea de cómo hacerlo.
El primer paso es crear una página de administración de nivel superior con el agregar_menu_pagina() función.
add_action( 'admin_menu', 'my_admin_menu' );
function my_admin_menu() {
add_menu_page( 'My Top Level Menu Example', 'Top Level Menu', 'manage_options', 'subscribe-plugin/subscribe-plugin-admin-page.php', 'subscribe-plugin_admin_page', 'dashboard-tickets', 6 );
}
La función toma siete argumentos.
$título_página
(cadena) (Obligatorio) El texto que se mostrará en las etiquetas de título de la página cuando se seleccione el menú.
$menu_title
(cadena) (Obligatorio) El texto que se utilizará para el menú.
$capacidad
(cadena) (Requerido) La capacidad requerida para que este menú se muestre al usuario.
$menu_slug
(cadena) (Obligatorio) El nombre del slug para hacer referencia a este menú. Debe ser único para esta página de menú y solo incluir caracteres alfanuméricos en minúsculas, guiones y guiones bajos para que sea compatible con sanitize_key().
$ función
(invocable) (Opcional) La función que se llamará para generar el contenido de esta página. Valor por defecto: ”
$icon_url
(cadena) (Opcional) La URL del icono que se utilizará para este menú. * Pase un SVG codificado en base64 utilizando un URI de datos, que se coloreará para que coincida con el esquema de color. Debe comenzar con ‘data:image/svg+xml;base64,’. * Pase el nombre de una clase auxiliar de Dashicons para usar un ícono de fuente, por ejemplo, ‘dashicons-chart-pie’. * Pase ‘ninguno’ para dejar div.wp-menu-image vacío para que se pueda agregar un ícono a través de CSS. Valor por defecto: ”
$posicion
(int) (Opcional) La posición en el orden del menú en que debe aparecer este. Valor por defecto: nulo
El siguiente paso es crear el contenido de la página. Todo lo que necesita hacer es crear la función definida en el argumento cinco y hacer eco de su formulario.
function subscribe-plugin_admin_page(){
?>
<div class="wrap">
<h2>Welcome To My Plugin</h2>
//Your form here
</div>
<?php
}
URL de la página de administración de ejemplo con argumentos de consulta adicionales:
$query_args = array( 'page' => 'your-plugin-page', 'do' => 'edit' );
echo add_query_arg( $query_args, admin_url( 'subscribe-plugin/subscribe-plugin-admin-page.php' ) );
-
¡Lo tengo! Entonces, necesito usar solo UNA función (subscribe-plugin_admin_page en su ejemplo) para mostrar TODAS las páginas diferentes y manejar todas las consultas de publicaciones diferentes, según los parámetros GET que obtengo.
– a.anon
7 de noviembre de 2018 a las 23:28
Hay muchos tutoriales sobre la creación de páginas de administración personalizadas para un complemento de WordPress. ¿Ya probaste alguno de esos? Si es así, ¿te quedaste atascado en algún lugar? Comparte tu código y te ayudaremos.
– cabrerahector
7 de noviembre de 2018 a las 20:57
@cabrerahector sí, lo intenté, claro. Todo lo que tengo: puedo crear un elemento de menú y una página para ello. Pero necesito una página realmente personalizada con mi formulario html y su controlador.
– a.anon
7 de noviembre de 2018 a las 22:10
@brasofilo Lo siento, pero no es lo que quiero. Es demasiado difícil hacerlo con Publicaciones personalizadas. Solo necesito alguna herramienta para hacer mis propios formularios html en wordpress y manejarlos. Descubrí cómo hacer una página sin un elemento de menú. E hice un formulario html en él (editando mi propio artículo). OK eso está bien. Pero, ¿cómo manejar la consulta posterior de este formulario?
– a.anon
7 de noviembre de 2018 a las 22:12
Abra nuevas preguntas si tiene nuevos problemas con su código.
– brasofilo
7 noviembre 2018 a las 23:50