Extensión de ajustes
POM Events es dueño de su propia página de ajustes y expone su definición a través de un filtro, para que una integración pueda añadir secciones, pestañas o campos.
El filtro
add_filter( 'pom_events_settings', function ( $settings ) {
// Inspect or extend the settings definition.
return $settings;
}, 20 );
La definición es un array de secciones, cada una con pestañas y ajustes, con la forma que el framework de POM renderiza. La propia sección License del plugin se añade mediante este mismo filtro, lo que es un buen indicio de lo que admite.
Las secciones existentes
| Área clave | Contiene |
|---|---|
| General | Si existe la funcionalidad de asistentes |
| Archive | Tamaño de página, fechas, imágenes, mensaje de error |
| Single event | Cabecera, título, enlace de calendario, volver atrás, cláusula del formulario, contenido relacionado |
| License | La clave de suscripción |
Añade tu propia sección en lugar de modificar una existente cuando puedas — sobrevive mejor a las actualizaciones y mantiene identificables tus campos.
Añadir una sección
add_filter( 'pom_events_settings', function ( $settings ) {
if ( ! is_array( $settings ) ) {
return $settings;
}
$settings['my_events_extras'] = array(
'title' => __( 'Extras', 'my-plugin' ),
'allowed_roles' => array( 'administrator' ),
'tab' => array(
'my_events_extras_tab' => array(
'title' => __( 'Extras', 'my-plugin' ),
'description' => __( 'Additional event options.', 'my-plugin' ),
'settings' => array(
'my_events_extras' => array(
'title' => __( 'Options', 'my-plugin' ),
'requires_initialization' => true,
),
),
),
),
);
return $settings;
}, 30 );
Los campos de un ajuste los proporciona un fields.php que devuelve un array de definiciones de campos, en el formato del propio framework, situado en el directorio de ajustes al que apunta la definición.
Leer un valor
Los ajustes se guardan en el espacio de nombres pom-events:
use POMFramework\POM_Framework_Settings;
$value = POM_Framework_Settings::get_setting_value(
'pom-events',
'events_archive',
'posts_per_page',
'number'
);
Los cuatro argumentos son el slug de la página, el grupo del ajuste, el nombre del campo y el tipo del campo. Pasa el mismo tipo con el que se declaró el campo, para que el valor almacenado se vuelva a sanear al leerlo.
Leer los valores propios de POM Events
Los identificadores que más probablemente necesites:
| Grupo | Campo |
|---|---|
events_general |
disable_events_attendees_functionality |
events_archive |
posts_per_page, hide_events_date, events_list_loader, events_list_default_thumbnail, events_error_message |
events_single |
single_event_disable_subheader, single_event_display_title, single_event_hide_add_to_calendar, single_event_display_go_back, single_event_form_clause, single_event_form_privacy_policy_link, single_event_header_image, single_event_display_featured_image_in_content, single_event_related_content_label |
Los valores de las casillas se leen como 'yes' o 'no', lo que conviene recordar al escribir condiciones.
La página de ajustes funciona sin el tema POM
A diferencia del tiempo de ejecución de eventos, la pantalla de ajustes, la sección de licencia y el actualizador se cargan independientemente del tema activo.
Por lo tanto, una integración que solo amplía los ajustes no necesita la protección del tema. Una integración que afecte a los eventos sí la necesita.
No guardes los ajustes en el espacio de nombres del tema
POM Events mantiene deliberadamente sus valores bajo su propio espacio de nombres. Añadir ajustes de eventos a las opciones del tema se rompería al cambiar de tema y no está admitido.