web-dev-qa-db-fra.com

Lors de l'ajout d'une coutume REST point de terminaison, où placez-vous la fonction de point de terminaison et où vous placez l'appel d'enregistrement de fonction?

La documentation WordPress, les blogueurs et les répondeurs StackExchange ont très bien décrit le code que vous avez écrit pour créer un endpoint personnalisé REST, mais je ne trouve aucune documentation décrivant exactementvous placez le code.

Supposons que je souhaite retourner la chaîne "foo" à un noeud final. A partir de ma lecture, j'implémente une fonction comme celle-ci:

function my_foo() {
    return "foo";
}

et j'enregistre la fonction avec un appel comme celui-ci:

add_action( 'rest_api_init', function () {
    register_rest_route( 'mycompany/v1', '/foo/', array(
            'methods' => 'GET',
            'callback' => 'my_foo'
    ) );
} )

Cela n’a rien de difficile, mais pour ma vie, je ne peux pas savoir où les mettre.

Pour le noeud final REST, je suppose que je placerais la fonction dans un fichier à:

wp-json/mycompany/v1/foo.php

mais ce serait bien de savoir avec certitude.

En ce qui concerne l'appel add_action(), je suis aussi en train de perdre mon temps à chercher où l'appel va.

La documentation ici ne décrit pas l’emplacement de ces appels, de même que l’article ici (et de nombreuses autres sources que j’ai trouvées).

Si quelqu'un pouvait indiquer où ces lieux sont documentés ou s'il me manque quelque chose juste devant, ce serait formidable!

5
Rjak

Si vous développez un thème, c'est le bon endroit pour placer votre code dans le cas présent si le fichier functions.php de votre thème. C’est le fichier qui sera sûrement lancé lors de l’accès à votre site Web.

Si vous développez un plugin, vous pouvez placer votre code dans un fichier php (tel que foo.php), puis l'inclure/l'exiger dans votre modèle, selon vos besoins.

Ne sauvegardez ou modifiez AUCUN fichier en dehors du dossier wp-content ou de vos plugins. Celles-ci seront remplacées par les mises à jour de WordPress et risquent d'être identifiées comme des logiciels malveillants par certains plug-ins anti-logiciels malveillants/applications serveur.

Vous pouvez réellement placer votre code directement dans le fichier core de votre plugin, mais je préfère catégoriser les fonctions au cas où je devrais y accéder ou les modifier rapidement plus tard (opinion personnelle).

3
Jack Johansson