post_type ) { return new EventPrime_Event_Transformer( $post ); } } if ( 'venue' === $object_type ) { $term = get_term( self::get_object_id( $object_type ) ); if ( $term && self::get_place_taxonomy() === $term->taxonomy ) { return new EventPrime_Place_Transformer( $term ); } } return $transformer; } /** * Determine if the current post is actually just a shortcode Wrapper linking to an EventPrime event. * * @param \WP_Post $post The WordPress post object. * @return string|bool */ private static function post_contains_eventprime_object( $post ) { if ( 'page' !== $post->post_type ) { return false; } if ( '[em_event]' === $post->post_content || '[em_events]' === $post->post_content ) { return 'event'; } if ( '[em_sites]' === $post->post_content ) { return 'venue'; } return false; } /** * Extract the post id for events and term id for venues for an EventPrime event query. * * @param string $type 'event' or 'venue'. * @return bool|int The post ID, or term ID if found, false otherwise. */ private static function get_object_id( $type = 'event' ) { if ( ! in_array( $type, array( 'venue', 'event' ), true ) ) { return false; } $event = get_query_var( $type ); if ( ! $event ) { if ( ! empty( filter_input( INPUT_GET, $type, FILTER_SANITIZE_FULL_SPECIAL_CHARS ) ) ) { $event = rtrim( filter_input( INPUT_GET, $type, FILTER_SANITIZE_FULL_SPECIAL_CHARS ), '/\\' ); } } if ( $event ) { $ep_basic_functions = new Eventprime_Basic_Functions(); return $ep_basic_functions->ep_get_id_by_slug( $event, "em_{$type}" ); } return false; } }