Puede agregar sus propios elementos de menú a la barra de herramientas usando este gancho: https://developer.wordpress.org/reference/hooks/admin_bar_menu/
También define el objetivo de enlace aquí, que luego puede usar para llamar a una función WP de su elección.
Hola @threadi
Gracias, casualmente, vi esa página ayer antes de publicar y debería haber hecho referencia a ella. ¿Estoy en lo cierto al pensar entonces que el:
'title' => $local_time,
$local_time
Key/Val podría ser una llamada a la función WP nativa: la mayor parte de la magia en WPTOOLBAR parece suceder en la tecla ‘Título’. Entonces, sin usar ganchos, podríamos hacer $local_time
una llamada de función personalizada, es decir $split_to_columns(4)
Y en esta función usamos la función nativa de WP para hacer lo que queremos.
$ local_time es solo un valor de cadena. Puede pasar cualquier cadena que desee debajo de la clave «Título». Cómo componiendo esa cadena sería donde podría ocurrir cualquier magia. En el ejemplo que creo que estás mirando, esta sería la parte mágica:$local_time = date( 'Y-m-d, g:i a', current_time( 'timestamp', 0 ) );
Debe usar el gancho «Admin_bar_menu» para obtener el objeto wp_admin_bar en el que puede agregar o eliminar nodos.
¿Cómo estás tratando de hacer ahora que hemos establecido que se pueden llamar a las funciones de WP?
@BCWorkz
Estoy tratando de llamar al flush_rewrite_rules();
Función WP. Ya he construido el submenú y sus funciones están bien. Puedo responder a los clics en el botón en jQuery y mostrar un mensaje solo para demostrar que está funcionando. Entonces, ¿en qué me engancho en WordPress para llamar a la función Flush? ¿Hay un gancho como ‘wpbar_node_click’ o algo? Durante la llamada a esta función, puedo aprobar un argumento que permite a los usuarios (solo administradores) hacer una descarga ‘dura’ o ‘suave’.
// first child node
$args = array(
'id' => 'pinflsh',
'title' => '',
'href' => '',
'parent' => 'pinmain',
'meta' => array(
'class' => 'pin-styles',
'title' => ''
)
);
$wp_admin_bar->add_node($args);
También he experimentado llamando a un archivo PHP usando el clic en el botón de Ajax, el archivo contiene el, flush_rewrite_rules();
función, pero el inspector de desarrolladores de Chrome dice que la función no se reconoce.
Usar el gancho «Admin_bar_menu» desde el cual ejecutar funciones se ejecutaría en cualquier momento en que aparezca la barra de administración en cualquier página. Dado que flush_rewrite_rules () es intensivo en recursos, esto no es lo que debería estar haciendo. flush_rewrite_rules () solo debe llamarse en una base intermitente, según sea necesario.
Hacer que se llame desde un evento de clic en un elemento de menú está bien. Llamarlo cada vez que aparece la barra de administración no está bien. Es posible usar técnicas AJAX para hacer que las reglas se descarguen. Un evento de clic enviaría una solicitud AJAX al servidor y la función del controlador AJAX del lado del servidor puede hacer la llamada.
El motivo del error de función indefinido que está recibiendo es que el entorno WP no fue inicializado correctamente por el archivo solicitado. El uso de AJAX debería aliviar ese problema, pero hay una forma particular de manejar AJAX en WP. La solicitud debe pasar por /wp-admin/admin-ajax.php, pasando un particular action
Parámetro de cadena de consulta. Su función de controlador de Ajax se conectaría a una acción cuyo nombre se basa en parte en el action
valor del parámetro.
FWIW, puede hacer que las reglas se descarguen solicitando la pantalla de configuración de enlaces permanentes. No hay necesidad de alterar ni cambiar nada, simplemente cargar la página es adecuada.
Hola @bcworkz
Gracias por eso, solo para abordar su último punto primero; Este menú es solo para administradores, pero también es una comodidad, sí, nos guarda unos pocos clics, incluidos hacer clic en el botón Guardar en la pantalla Permalinks solo para guardar la configuración que ya está configurada. Estoy construyendo muchos CPT, taxonomías y roles y capacidades y cada vez que tengo que recordar enjuagar el caché, de lo contrario todo se abarca.
Estoy usando wp_localize_script()
Para llamar correctamente a nuestro archivo AJAX PHP para que su consejo sea probablemente lo que falta aquí. "/wp-admin/admin-ajax.php, passing a particular action query string parameter"
¿Puedes darme una idea o ejemplo de cómo usar esa técnica o hay un enlace a los documentos que puedo leer?
¿Hay algún enlace a los documentos que puedo leer?
Siga el enlace en mi respuesta anterior 😉 Después de revisar esa página, continúe en las siguientes dos secciones. La sección anterior a la página vinculada sobre jQuery también podría ser informativa.
Hay una serie de piezas que tienen que trabajar juntas para tener AJAX funcional en WP. No se sorprenda cuando necesite depurar antes de que todo funcione correctamente. Una vez que todo funcione y comprenda lo que está pasando, encontrará que no es realmente tan complejo. Pero en el primer paso es mucho para asimilar. Al menos esa fue mi experiencia cuando intenté hacer Ajax en WP. Ymmv