web-dev-qa-db-fra.com

Peut-on connecter une méthode statique d'une classe à add_action à l'intérieur de cette classe?

Donc, en gros, ce que j'essaie de faire, c'est de relier une méthode statique d'une classe à une autre méthode statique de cette même classe.

Le code est ici:

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 ); 

}

}

Est-ce possible? Je ne sais pas puisque je suis un peu nouveau sur ce type de structure.

UPDATEJ'appelle également cette classe sur un fichier externe.

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' ) );
1
GreyWolfram

register_activation_hook ne fonctionne qu'une fois, c'est-à-dire lorsque le plug-in est activé pour la première fois - utilisez plutôt le crochet init pour "démarrer" votre plug-in:

add_action( 'init', 'LocatorMap::init' );
5
TheDeadMedic