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

  1. Vuelve a leer el ajuste con pom_theme_get_settings_values.
  2. Carga una página afectada y confirma que el diseño ha cambiado.
  3. 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