get_slides(); if ( is_wp_error( $result ) ) { if ( current_user_can( 'manage_options' ) ) { return '
' . sprintf( __( 'HSSM API Error: %s', 'hi-school-slide-manager' ), $result->get_error_message() ) . '
'; } return ''; } $slides = $result; } else { // Manager mode - Fetch locally $site_slug = isset( $atts['site'] ) ? sanitize_text_field( $atts['site'] ) : get_option( 'hssm_client_site_slug', 'hi-school' ); $date = isset( $atts['date'] ) ? sanitize_text_field( $atts['date'] ) : current_time( 'Y-m-d' ); // Build query args similar to what's in the REST API or Frontend class $args = array( 'post_type' => 'hssm_slide', 'posts_per_page' => isset( $atts['limit'] ) ? intval( $atts['limit'] ) : 10, 'post_status' => array( 'publish', 'future', 'pending' ), 'meta_key' => '_hssm_order', 'orderby' => 'meta_value_num', 'order' => 'ASC', ); if ( ! empty( $site_slug ) ) { $args['tax_query'] = array( array( 'taxonomy' => 'hssm_site', 'field' => 'slug', 'terms' => $site_slug, ), ); } // Add date filtering $target_date = $date . ' 23:59:59'; $args['meta_query'] = array( 'relation' => 'AND', array( 'relation' => 'OR', array( 'key' => '_hssm_start_date', 'value' => '', 'compare' => '=' ), array( 'key' => '_hssm_start_date', 'value' => $target_date, 'compare' => '<=' ), array( 'key' => '_hssm_start_date', 'compare' => 'NOT EXISTS' ) ), array( 'relation' => 'OR', array( 'key' => '_hssm_end_date', 'value' => '', 'compare' => '=' ), array( 'key' => '_hssm_end_date', 'value' => $target_date, 'compare' => '>=' ), array( 'key' => '_hssm_end_date', 'compare' => 'NOT EXISTS' ) ) ); $query = new WP_Query( $args ); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); $slide_id = get_the_ID(); // Format data to match what the API returns $slides[] = array( 'id' => $slide_id, 'title' => get_the_title(), 'subtitle' => get_post_meta( $slide_id, '_hssm_subtitle', true ), 'content' => get_the_content(), 'buttons' => get_post_meta( $slide_id, '_hssm_buttons', true ), 'featured_image' => get_the_post_thumbnail_url( $slide_id, 'full' ), 'hide_all_text' => get_post_meta( $slide_id, '_hssm_hide_all_text', true ) === '1', ); } wp_reset_postdata(); } } if ( empty( $slides ) ) { return ''; } $slider = new HSSM_Slider(); return $slider->render( $slides, $atts ); } }