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 :
- Import — modifier, enrichir, réagir à l’import des fiches → voir Hooks d’import
- Indexation et listing — modifier les arguments de requête, personnaliser l’index → voir Hooks d’indexation et de listing
- Templating — ajouter du contenu dynamique dans les templates → voir Callbacks dynamiques
- CPT et taxonomies — personnaliser les types de post et taxonomies Apidae → voir Personnaliser les CPT et taxonomies