Shortcodes

POM Events registra dos shortcodes, ambos disponibles también como elementos del maquetador de páginas.

[web_event_search_form]

Una lista de eventos filtrable con resultados AJAX.

Atributo Valores Efecto
hide_calendar yes Oculta la columna de filtros, incluido el selector de fecha
error_msg Texto El mensaje para un mes del calendario sin eventos
el_class Nombre de clase Una clase adicional en el contenedor

Muestra un selector de fecha, un grupo de casillas Filter by type, un grupo de casillas Filter by category y un área de resultados con un control Load more events.

[pom_events_fullcalendar]

Un calendario mensual de todos los eventos publicados.

Atributo Efecto
el_class Una clase adicional en el contenedor del calendario

Cada entrada incluye el título del evento, su inicio y fin, un enlace al evento y sus slugs de categoría del evento como clases — la forma compatible de codificar el calendario por colores según la categoría.

Ampliar el formulario de búsqueda

La configuración de búsqueda se expone mediante un filtro, que es la forma compatible de cambiar la consulta, los campos o el comportamiento AJAX:

add_filter( 'web_event_search_form', function ( $args ) {
    // Limit the list to one category.
    $args['wp_query']['tax_query'] = array(
        array(
            'taxonomy' => 'event_category',
            'field'    => 'slug',
            'terms'    => array( 'concerts' ),
        ),
    );

    return $args;
} );

El array contiene:

Clave Contenido
wp_query La consulta base: tipo de contenido, estado, tamaño de página, ordenación y la meta consulta de eventos próximos
form El comportamiento del formulario, incluida la configuración AJAX
fields Los campos renderizados, incluidos los filtros de taxonomía

Añadir un campo de filtro

add_filter( 'web_event_search_form', function ( $args ) {
    $args['fields'][] = array(
        'label'       => __( 'Filter by tag', 'my-plugin' ),
        'type'        => 'taxonomy',
        'format'      => 'checkbox',
        'term_format' => 'slug',
        'taxonomy'    => 'post_tag',
    );

    return $args;
} );

Los campos de taxonomía se renderizan como grupos de casillas o botones de opción con una opción All, y los valores enviados se aplican a la consulta como una cláusula de taxonomía. Las taxonomías jerárquicas incluyen sus hijos.

Incluir eventos pasados

La consulta base filtra los eventos cuya fecha de fin es hoy o posterior. Para incluir eventos pasados en un listado específico, elimina esa cláusula:

add_filter( 'web_event_search_form', function ( $args ) {
    unset( $args['wp_query']['meta_query'] );
    $args['wp_query']['order'] = 'DESC';

    return $args;
} );

Ten en cuenta que el filtro es global, así que limita ese cambio a la página o al contexto donde lo quieras.

Requisitos

Ambos shortcodes solo existen cuando el tema POM está activo. Con otro tema no se registran y no producen nada.

Protege cualquier código que los dé por supuestos:

if ( shortcode_exists( 'web_event_search_form' ) ) {
    // Safe.
}

Lo que los shortcodes no aceptan

No hay atributos para la ordenación, el tamaño de página, la restricción a un término de taxonomía, la inclusión de eventos pasados ni el marcado del elemento de resultado. Eso es terreno del filtro, o de la plantilla.

La plantilla de resultados

Los elementos de la lista se renderizan mediante la plantilla de resultados del plugin. Para cambiar el marcado de un resultado, sobrescríbela o amplíala a través del tema en lugar de filtrar la cadena de salida — consulta Template integration.