pom_theme_update_setting: actualizar un ajuste
Cambia un campo de un ajuste de POM Theme — si ese campo está en la lista de permitidos.
Argumentos
| Argumento | Obligatorio | Significado |
|---|---|---|
setting |
Sí | La clave del ajuste |
field |
Sí | El campo dentro de él |
value |
Sí | El nuevo valor |
dry_run |
No | Informar sin escribir |
Permisos
Permitir escrituras en POM Theme abierto, más manage_options — no el edit_theme_options que requiere la lectura.
La lista de permitidos son dos campos
De serie, exactamente dos campos se pueden escribir:
- el diseño de la barra lateral del archivo de entradas, en el ajuste
post_archive; - el diseño individual de la entrada, en el ajuste
post_single.
Todo lo demás devuelve pom_ai_mcp_theme_field_denied. Colores, tipografía, cabecera, pie de página, logotipos, botones, espaciado — todo se puede leer, nada se puede escribir.
Esto sorprende a la gente, y es deliberado. Un cliente conectado no puede cambiar el estilo del sitio preguntando.
Los diseños de tipos de contenido personalizados también se aceptan
Además de la lista de permitidos, funcionan dos patrones dinámicos: el diseño de la barra lateral del archivo y el diseño de la barra lateral individual para cualquier tipo de contenido personalizado, en los ajustes cpt_archive y cpt_single respectivamente.
Solo se aceptan cuando el tipo de contenido existe de verdad. Un campo que nombre un tipo de contenido que no está registrado se rechaza como cualquier otro.
Ampliar la lista de permitidos es una decisión del sitio
La lista de permitidos pasa por el filtro pom_ai_mcp_writable_pom_theme_settings, de modo que un sitio puede añadir entradas con la forma setting.field. Un * en lugar de un nombre de campo coincide con cualquier campo individual de ese ajuste.
Eso es código que alguien escribe y despliega deliberadamente. No es algo que un asistente pueda organizar, y pedirlo no es una alternativa ante una denegación. Consulta Ampliar los módulos de herramientas.
Qué se rechaza independientemente de la lista de permitidos
| Error | Causa |
|---|---|
pom_ai_mcp_js_write_denied |
El campo es JavaScript. Siempre se rechaza, sin excepciones |
pom_ai_mcp_complex_setting_denied |
El valor es una matriz o un objeto; usa la herramienta específica |
pom_ai_mcp_css_denied |
CSS que contiene etiquetas PHP o </style> |
pom_ai_mcp_template_php_denied |
HTML que contiene etiquetas PHP |
El rechazo de JavaScript no tiene filtro ni puerta. No hay ninguna configuración que lo habilite.
El rechazo de valores complejos es la razón por la que los repetidores — fragmentos CSS, plantillas — tienen sus propias herramientas en lugar de editarse a través de esta.
Los valores se sanean
Los valores simples pasan por el saneamiento de texto, de modo que el marcado en un campo de texto no sobrevivirá intacto. Los campos HTML usan siempre las reglas de contenido de entrada KSES de la instalación, incluso para actores con unfiltered_html. Los scripts y los manejadores en línea siguen excluidos.
Comprueba el resultado en lugar de asumir que lo que enviaste es lo que se almacenó.
La prueba en seco es auténtica
Devuelve before — el valor actual — y after, el valor que se almacenaría después de la validación y el saneamiento. Eso la convierte en una vista previa real, a diferencia de algunas pruebas en seco del capítulo de WooCommerce que simplemente repiten los argumentos.
También ejecuta primero las comprobaciones de la lista de permitidos y de validación, de modo que una prueba en seco es la manera de averiguar que un campo está denegado sin escribir nada:
Prueba en seco al establecer el diseño de la barra lateral del archivo de entradas y muéstrame el antes y el después.
Para los campos de código, la prueba en seco devuelve el propio contenido; una escritura real lo almacena en un archivo y devuelve la ruta.
La escritura activa la rutina de guardado del tema
Después de almacenar el valor, se ejecuta la propia acción posterior al guardado del tema — la misma que activa el administrador. Eso es lo que aplica el cambio en lugar de limitarse a registrarlo.
Los ajustes de plantilla además reconstruyen los manifiestos de descubrimiento de activos del tema.
Después de escribir
- Vuelve a leer el ajuste con
pom_theme_get_settings_values. - Carga una página afectada y confirma que el diseño ha cambiado.
- Purga la caché.
Problemas habituales
| Síntoma | Causa |
|---|---|
| La escritura se rechaza | La puerta de escritura de POM Theme está cerrada |
pom_ai_mcp_forbidden |
Falta manage_options; la lectura necesita menos |
pom_ai_mcp_theme_field_denied |
No está en la lista de permitidos — el resultado habitual |
pom_ai_mcp_theme_setting_not_found |
Clave de ajuste incorrecta |
pom_ai_mcp_js_write_denied |
JavaScript; incondicional |
pom_ai_mcp_complex_setting_denied |
Usa las herramientas CSS o de plantillas |
| El valor almacenado difiere de lo que enviaste | Saneamiento |