だから基本的に、私がやろうとしているのは同じクラスの別の静的メソッドにクラスの静的メソッドをフックすることです。
コードはこちらです。
class LocatorMap {
public static function init() {
add_action( 'wp_enqueue_scripts', array( __CLASS__, 'register_scripts' ) );
}
/* add_action( 'wp_enqueue_script', array( 'LocatorMap', 'register_scripts' ) ); */
public function register_scripts() {
global $post;
/* http or https */
$scheme = parse_url( get_bloginfo('url'), PHP_URL_SCHEME );
/* register gmaps api and info box */
wp_register_script( 'google-maps-api', $scheme . '://maps.googleapis.com/maps/api/js', array('jquery'), FALSE, true );
wp_register_script( 'google-maps-info-box', $scheme . '://cdn.rawgit.com/googlemaps/v3-utility-library/infobox/1.1.13/src/infobox.js', array( 'jquery', 'google-maps-api' ), '1.1.13', true );
}
}
これは可能ですか?この種の構造については少し新しいので、わかりません。
_ update _ 外部ファイルでこのクラスを呼び出しています。
define( DEALERSHIP_MAP_URL, untrailingslashit( plugin_dir_url( __FILE__ ) ) );
define( DEALERSHIP_MAP_DIR, untrailingslashit( plugin_dir_path( __FILE__ ) ) );
define( DEALERSHIP_MAP_TEMPLATE, DEALERSHIP_MAP_DIR . '/templates' );
require_once( 'core/class-locator-map.php' );
register_activation_hook( __FILE__, array( 'LocatorMap', 'init' ) );
register_activation_hook
は一度だけ実行されます。つまり、プラグインが最初に起動されたときです。代わりにinit
フックを使用してプラグインを「起動」してください。
add_action( 'init', 'LocatorMap::init' );