WordPress voert, bij bepaalde gebeurtenissen (stappen tijdens het laden van WordPress), functies (Actions/Filters) uit die geregistreerd zijn aan een bepaald event (gebeurtenis) d.m.v. “Hooks”. Actions en Filters in WordPress zijn functies die aangepast kunnen worden door de developers om de standaard functionaliteit aan te passen.
Filters are different than Actions. WordPress actions are executed at events like when a theme or plugin is activated, or when a post is published. Filters are used to filter output when it is sent to either database or to user browser.
Voorbeeld php met diverse hooks:
<?php // INI - Set up HOOKS - Acties zetten ================================== // plugins zijn geladen core vars zetten, classes laden add_action( 'plugins_loaded', 'a3d_plugLoaded' ); // INITIALISEREN Meeste geladen geladen - alles toegankelijk add_action( 'init', 'a3d_ini' ); // WordPress volledig geladen (maar nog niets te zien op scherm) add_action( 'wp_loaded','a3d_wpLoaded' ); // footer geladen (net voor de sluit (body) tag add_action( 'wp_footer', 'a3d_footerLoaded', 100 ); // CALLBACKS - ACTIONS ================================================= // plugins zijn geladen function a3d_plugLoaded() { a3d_trace("a3d-tester FRONT/BACK: 1. Plugins zijn geladen"); } // INITIALISEREN Meeste geladen - alles toegankelijk function a3d_ini() { a3d_trace("a3d-tester FRONT/BACK: 2. INITIALISEREN Meeste geladen alles toegankelijk"); } // WordPress volledig geladen (maar nog niets te zien op scherm) function a3d_wpLoaded() { if ( !is_admin() ) { // Only target the front end a3d_trace("a3d-tester FRONT/BACK: 3a. WP is volledig geladen. Nog geen view FROND END"); } else { // Only target the back end a3d_trace("a3d-tester FRONT/BACK: 3b. WP is volledig geladen. Nog geen view BACK END"); } } // footer geladen (net voor de sluit tag </body> - Alleen op FROND END function a3d_footerLoaded() { a3d_trace("a3d-tester FRONT: 4. footer geladen (net voor de sluit tag body)- Alleen op FROND END"); } // WORKERS ============================================================== function a3d_trace($msg){ echo '<script type="text/javascript">alert("' . $msg . '")</script>'; } ?>
Voorbeeld van hook actie (functie) die word uitgevoerd als de profielpagina van een gebruiker geladen word (onder kleuren keuzes, boven gebruikers naam):
// profielpagina hook - onder kleuren keuze, boven naam add_action( 'profile_personal_options', 'extra_profile_fields' ); function extra_profile_fields( $user ) { // haal de waarde uit een enkele meta key $meta_value = get_user_meta( $user->ID, 'meta_key', true ); // $user bevat WP_User object // doe er iets mee. ?> <input type="text" value="<?php echo esc_attr( $meta_value ); ?>" name="value" /> <?php }
Bronnen: