Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
【WordPress】HTML5のGeolocation APIを使ってBasic Google Maps Placemarksプラグインの地図を表示するショートコードに現在地へ移動するボタンを追加する方法
<?php
/**
* Plugin Name: MY Basic Google Maps Placemarks
* Version: 0.1-alpha
* Description: PLUGIN DESCRIPTION HERE
* Author: kurozumi
* Author URI: http://a-zumi.net
* Plugin URI: PLUGIN SITE HERE
* Text Domain: my-basic-google-maps-placemarks
* Domain Path: /languages
* @package My-basic-google-maps-placemarks
*/
add_action('plugins_loaded', function() {
if( !class_exists( 'BasicGoogleMapsPlacemarks' ) )
return;
class MY_BasicGoogleMapsPlacemarks extends BasicGoogleMapsPlacemarks
{
public function mapShortcode( $attributes )
{
if( !wp_script_is( 'googleMapsAPI', 'queue' ) || !wp_script_is( 'bgmp', 'queue' ) || !wp_style_is( self::PREFIX .'style', 'queue' ) )
{
$error = sprintf(
__( '<p class="error">%s error: JavaScript and/or CSS files aren\'t loaded. If you\'re using do_shortcode() you need to add a filter to your theme first. See <a href="%s">the FAQ</a> for details.</p>', 'basic-google-maps-placemarks' ),
BGMP_NAME,
'http://wordpress.org/extend/plugins/basic-google-maps-placemarks/faq/'
);
// @todo maybe change this to use views/message.php
return $error;
}
if( isset( $attributes[ 'categories' ] ) )
$attributes[ 'categories' ] = apply_filters( self::PREFIX . 'mapShortcodeCategories', $attributes[ 'categories' ] ); // @todo - deprecated b/c 1.9 output bgmpdata in post; can now just set args in do_shortcode() . also not consistent w/ shortcode naming scheme and have filter for all arguments now. need a way to notify people
$attributes = apply_filters( self::PREFIX . 'map-shortcode-arguments', $attributes ); // @todo - deprecated b/c 1.9 output bgmpdata in post...
$attributes = $this->cleanMapShortcodeArguments( $attributes );
ob_start();
do_action( BasicGoogleMapsPlacemarks::PREFIX . 'meta-address-before' );
// viewsの読み込み先を変更
require_once( dirname( __FILE__ ) . '/views/shortcode-bgmp-map.php' );
do_action( BasicGoogleMapsPlacemarks::PREFIX . 'shortcode-bgmp-map-after' );
$output = ob_get_clean();
return $output;
}
}
$my_bgmp = new MY_BasicGoogleMapsPlacemarks;
}, 9999);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment