web-dev-qa-db-fra.com

Comment "remplacer une fonction via des plugins" dans WordPress?

Je suis nouveau sur WordPress et je ne comprends pas leurs documents. Ce que j'aimerais faire, c'est remplacer le wp_hash_password (et quelques autres fonctions liées au mot de passe) par le mien. J'ai déjà écrit les fonctions et les ai testées en dehors de WordPress pour garantir leur fonctionnalité.

"La fonction wp_hash_password peut être remplacée via des plugins. Si les plugins ne redéfinissent pas ces fonctions, elles seront utilisées à la place."

Selon les documents WordPress

Malheureusement, je ne trouve aucun endroit qui me dise COMMENT le faire. J'ai essayé de créer un fichier PHP dans le ../wp-content/plugins/myfirstplugin/myplugin.php. Dans mon fichier myplugin.php, j'ai une fonction "écrasante":

function wp_hash_password( $password ) {

 // my code is here

}

J'ai aussi essayé de renommer mon fichier php en functions.php et j'ai même utilisé le add_action & add_filter mais là encore, la documentation est moins que supportante.

J'ai le code dont j'ai juste besoin de savoir comment le mettre dans un "plugin", où il va et comment l'activer (est-ce fait dans le menu de l'administrateur wordpress?)

À votre santé!

4
agentsmith666

Vous êtes sur la bonne voie avec la création du plugin. Toutes vos hypothèses sont correctes.

Pour éviter les erreurs lors de l'activation, vous voudrez envelopper les fonctions que vous redéfinissez dans des blocs function_exists, car à l'activation, ces fonctions seront déjà définies:

if ( ! function_exists( 'wp_hash_password' ) ) :

function wp_hash_password( $password ) {
    return 'foo';
}

endif;

Mettez votre code dans wp-content/plugins/myfirstplugin/myplugin.php assurez-vous que le plugin a le en-têtes de fichier _ afin que WordPress sache que c'est un plugin. Il y a aussi quelques informations utiles à ce sujet sur la Écriture d'une page de plugin sous l'en-tête Informations sur le plugin standard.

Ensuite, comme vous l'avez déjà supposé, vous activez votre plugin sur la page des plugins de l'administrateur WordPress.

5
ampt