summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/modules/geo-location.php')
-rw-r--r--plugins/jetpack/modules/geo-location.php81
1 files changed, 81 insertions, 0 deletions
diff --git a/plugins/jetpack/modules/geo-location.php b/plugins/jetpack/modules/geo-location.php
new file mode 100644
index 00000000..4d3e255c
--- /dev/null
+++ b/plugins/jetpack/modules/geo-location.php
@@ -0,0 +1,81 @@
+<?php
+
+require_once dirname( __FILE__ ) . '/geo-location/class.jetpack-geo-location.php';
+
+/**
+ * Geo-location shortcode for display of location data associated with a post.
+ *
+ * Usage with current global $post:
+ * [geo-location]
+ *
+ * Usage with specific post ID:
+ * [geo-location post=5]
+ */
+add_shortcode( 'geo-location', 'jetpack_geo_shortcode' );
+
+function jetpack_geo_shortcode( $attributes ) {
+ $attributes = shortcode_atts( array( 'post' => null, 'id' => null ), $attributes );
+ return jetpack_geo_get_location( $attributes['post'] ? $attributes['post'] : $attributes['id'] );
+}
+
+/**
+ * Get the geo-location data associated with the supplied post ID, if it's available
+ * and marked as being available for public display. The returned array will contain
+ * "latitude", "longitude" and "label" keys.
+ *
+ * If you do not supply a value for $post_id, the global $post will be used, if
+ * available.
+ *
+ * @param integer|null $post_id
+ *
+ * @return array|null
+ */
+function jetpack_geo_get_data( $post_id = null) {
+ $geo = Jetpack_Geo_Location::init();
+
+ if ( ! $post_id ) {
+ $post_id = $geo->get_post_id();
+ }
+
+ $meta_values = $geo->get_meta_values( $post_id );
+
+ if ( ! $meta_values['is_public'] || ! $meta_values['is_populated'] ) {
+ return null;
+ }
+
+ return array(
+ 'latitude' => $meta_values['latitude'],
+ 'longitude' => $meta_values['longitude'],
+ 'label' => $meta_values['label']
+ );
+}
+
+/**
+ * Display the label HTML for the geo-location information associated with the supplied
+ * post ID.
+ *
+ * If you do not supply a value for $post_id, the global $post will be used, if
+ * available.
+ *
+ * @param integer|null $post_id
+ *
+ * @return void
+ */
+function jetpack_geo_display_location( $post_id = null ) {
+ echo jetpack_geo_get_location( $post_id );
+}
+
+/**
+ * Return the label HTML for the geo-location information associated with the supplied
+ * post ID.
+ *
+ * If you do not supply a value for $post_id, the global $post will be used, if
+ * available.
+ *
+ * @param integer|null $post_id
+ *
+ * @return string
+ */
+function jetpack_geo_get_location( $post_id = null ) {
+ return Jetpack_Geo_Location::init()->get_location_label( $post_id );
+}