1. Accueil
  2. Docs
  3. Doc technique
  4. Doc technique (v6)
  5. Architecture et hook apidae_loaded (v6)

Architecture et hook apidae_loaded (v6)

WP-Apidae v6 expose une architecture extensible centrée sur un hook d’entrée unique, apidae_loaded. Ce hook est le point de rattachement recommandé pour tout module, thème ou extension custom qui veut étendre WP-Apidae, en garantissant que le plugin core est initialisé et que ses classes sont disponibles.

Le hook apidae_loaded

Déclenché à la fin du constructeur de la classe principale WPApidae, après includes() → init() → hooks(). Il fournit en paramètre l’instance de la classe principale :

do_action( 'apidae_loaded', $this );  // $this = instance WPApidae

Utilisez ce hook plutôt que plugins_loaded ou init : il garantit que les Custom Post Types, taxonomies, tables d’index et classes de service WP-Apidae sont tous chargés avant votre code.

Pattern type d’un module WP-Apidae

class Mon_Module {
    public function __construct() {
        add_action( 'apidae_loaded', array( $this, 'init' ) );
    }

    public function init() {
        // WP-Apidae est prêt : classes, CPT, taxonomies, tables d'index disponibles
        add_filter( 'wp-apidae/listing/query_args', array( $this, 'my_query_filter' ) );
        add_action( 'wp-apidae/create_post/after_insert_post', array( $this, 'after_import' ), 10, 2 );
    }

    // ...
}
new Mon_Module();

Détection de version

Si votre module doit se comporter différemment selon la version de WP-Apidae installée (par exemple pour supporter v5 et v6 en parallèle), utilisez la constante WPDAE_VERSION :

if ( defined( 'WPDAE_VERSION' ) && version_compare( WPDAE_VERSION, '6.0', '>=' ) ) {
    // Code spécifique à la v6
} else {
    // Code de compatibilité v5
}

Vérification de dépendance

Avant de vous accrocher à apidae_loaded, vous pouvez vérifier la présence de WP-Apidae via la constante ou la classe principale :

add_action( 'admin_init', function() {
    if ( ! class_exists( 'WPApidae' ) ) {
        // WP-Apidae non actif — afficher un message admin
        add_action( 'admin_notices', function() {
            echo '

Mon module nécessite WP-Apidae.

'; } ); } } );

Principaux points d’extension

Une fois accroché à apidae_loaded, vous disposez de nombreux hooks et filtres classés par domaine :

Aller plus loin

Étiquettes