web-dev-qa-db-fra.com

Comment obtenir plusieurs crochets d'action dans un tableau

Bonjour, je suis en train d’écrire un petit plug-in dans lequel je récupère du contenu en dehors de WordPress. Je souhaite qu’un petit script se déclenche chaque fois qu’un nouveau message, une nouvelle page ou un nouveau commentaire est ajouté. Également si des widgets, des thèmes et des plug-ins sont activés ou désactivés.

Mon hypothèse est que je devrais utiliser les crochets d'action pour cela, mais comme il y a plusieurs actions, comment obtenir toutes ces actions dans un tableau ou plus.

class getStatic {

    var $_renderTasksOn =
        array(

              <!-- How do I call those actions in an array here -->

        )

function gerStatic() {

    <!-- Here goes the script to get external data -->
}

}

Je suis très nouveau dans la programmation et aide donc gentiment avec le code. Comment utiliser ces crochets d'action?

Aide aimablement.

1
Vikram

Si vous souhaitez vous associer à plusieurs actions, vous devez appeler add_action plusieurs fois. Cependant, ce n'est pas si difficile. Prenons votre classe de plugin comme exemple:

class WPSE6526_getStatic // Always prefix your plugin with something unique, like your name. Here I used the question number
{
    var $_renderTasksOn = array( 'wp_insert_post', 'wp_insert_comment', ... );

    function WPSE6526_getStatic()
    {
        // The constructor of this class, which will hook up everything
        // This is the 'trick' to this question: a loop on your list and `add_action` for each item
        foreach ( $this->_renderTasksOn as $hookname ) {
            add_action( $hookname, array( &$this, 'getStatic' ) );
        }
    }

    function getStatic()
    {
        // Your code
    }
}

add_action( 'plugins_loaded', 'wpse6526_getStatic_init' );
function wpse6526_getStatic_init()
{
    $GLOBALS['wpse6526_getStatic_instance'] = new WPSE6526_getStatic();
}
5
Jan Fabry