Tribe__Events__JSON_LD__Venue::get_data( int|WP_Post|null $post = null, array $args = array('context' => false) )
Fetches the JSON-LD data for this type of object
Contents
Parameters
- $post
-
(int|WP_Post|null) (Optional) The post/venue
Default value: null
- $args
-
(array) (Optional)
Default value: array('context' => false)
Return
(array)
Source
File: src/Tribe/JSON_LD/Venue.php
public function get_data( $post = null, $args = array( 'context' => false ) ) {
$data = parent::get_data( $post, $args );
// If we have an Empty data we just skip
if ( empty( $data ) ) {
return array();
}
// Fetch first key
$post_id = key( $data );
// Fetch first Value
$data = reset( $data );
$data->address = array();
$data->address['@type'] = 'PostalAddress';
$data->address['streetAddress'] = tribe_get_address( $post_id );
$data->address['addressLocality'] = tribe_get_city( $post_id );
$data->address['addressRegion'] = tribe_get_region( $post_id );
$data->address['postalCode'] = tribe_get_zip( $post_id );
$data->address['addressCountry'] = tribe_get_country( $post_id );
// Filter empty entries and convert to object
$data->address = (object) array_filter( $data->address );
$geo = tribe_get_coordinates( $post_id );
if ( ! empty( $geo['lat'] ) && ! empty( $geo['lng'] ) ) {
$data->geo = (object) array(
'@type' => 'GeoCoordinates',
'latitude' => $geo['lat'],
'longitude' => $geo['lng'],
);
}
$data->telephone = tribe_get_phone( $post_id );
$data->sameAs = tribe_get_venue_website_url( $post_id );
$data = $this->apply_object_data_filter( $data, $args, $post );
return array( $post_id => $data );
}