En wordpress, hay una manera de establecer el atributo de la etiqueta del cuerpo en una página como esta:
<body onBlur="window.focus()">El editor WP Block no permite editar el html de la página, porque es un editor visual, por supuesto.
Usaría este código para poder hacer que una ventana emergente permanezca siempre en la parte superior.
Por cierto, resolví el problema de cómo abrir la ventana, simplemente no sé cómo hacer que permanezca en la parte superior
cómo crear una ventana emergente
Si hay otra manera me avisas.
gracias @ruvee
Escribí instrucciones paso a paso aquí: actualizar la etiqueta del cuerpo
Hay un gancho que podrías usar llamado wp_footer . Puede agregar atributos adicionales a su etiqueta de body usando javascript puro/vainilla como este:
add_action("wp_footer", "your_theme_adding_extra_attributes"); function your_theme_adding_extra_attributes(){ ?> <script> let body = document.getElementsByTagName("body"); body[0].setAttribute("onBlur", "window.focus()"); </script> <?php } El código entra en el archivo functions.php de su tema activo.
Esta respuesta ha sido probada en wordpress 5.8 y funciona.
Dependiendo de la página en la que necesite ejecutarlo, puede usar diferentes declaraciones condicionales. Por ejemplo:
is_archive() sería una verificación condicional adecuadais_home() sería una verificación condicional.is_front_page() sería una verificación condicional Si tiene una página con un slug of blah y desea modificar su etiqueta de body , puede usar el siguiente fragmento:
# The following code would only get executed on yourwebsite.com/blah add_action("wp_footer", "your_theme_adding_extra_attributes"); function your_theme_adding_extra_attributes(){ if(is_page("blah")){ ?> <script> let body = document.getElementsByTagName("body"); body[0].setAttribute("onBlur", "window.focus()"); </script> <?php } }class adicional NO attributes adicionales, hay un gancho llamado body_class y ya hay demasiadas respuestas en Stackoverflow, como:Puede conectarse al filtro de clase de cuerpo y hacer un eco para su atributo, no cómo deben funcionar los filtros, pero hace el trabajo sin js.
add_filter('body_class', 'bt_add_attr_to_body'); function bt_add_attr_to_body ($classes) { echo 'onBlur="window.focus()"'; return $classes; } Me di cuenta de sus comentarios que también le gustaría limitar a páginas específicas.
Digamos que quieres que suceda solo en la página principal.
Deberá agregar una condición if para la página principal, como esta
add_filter('body_class', 'bt_add_attr_to_body'); function bt_add_attr_to_body ($classes) { if (is_front_page()) echo 'onBlur="window.focus()"'; return $classes; }Según dónde desee que aparezca este atributo, deberá crear la condición adecuada.