Créer un chemin de repos personnalisé dans WordPress 4.4 et plus tard
Dans WordPress 4.4, certaines parties importantes de l’api rest tant attendue sont déjà au cœur de WordPress. Bien que pour de nombreux cas d’utilisation, vous devrez peut – être continuer à utiliser le plug – in jusqu’à ce qu’au moins WordPress 4.7 soit disponible, vous pouvez faire quelque chose d’intéressant en utilisant l’« Infrastructure» de l’api qui est devenue le noyau, en particulier la fonction Register _ rest route. Ridiculement, quelqu’un, frustré par la discussion sur l’union 4.5 (que Brian krogsgard a peut – être mieux saisie dans son billet à ce sujet), plaisantait que ce serait une vraie déception si la seule chose que l’api rest pourrait mettre en œuvre dans le noyau WordPress était de créer une meilleure façon de créer le paramètre Ajax. Il est difficile de ne pas être d’accord avec ce sentiment.
Mais c’est – à – dire qu’il est très intéressant d’utiliser Register _ rest Routing aujourd’hui. Ce n’est pas la seule fonctionnalité intéressante que nous obtenons de l’API rest, mais c’est la fonctionnalité que nous avons aujourd’hui qui permet quelque chose de très intéressant. Allons – y! Il y a quelques semaines, j’a i écrit un résumé conceptuel du « chemin du repos » sur les concepts qui sous – tendent le repos et ce que nous appelons le chemin. Si vous n’êtes pas au courant de ces concepts, lisez cet article, car nous serons un peu concis ici. Le résumé de cet article est le suivant: rest est une URL et une approche axée sur les ressources pour représenter l’accès aux données dans l’api rest Resources est quelque chose comme un post WordPress, une page ou une étiquette rest Routing est l’url à laquelle vous manipulez les ressources si tout cela est suffisamment significatif pour vous, la même URL de l’api rest répondra différemment aux différentes méthodes http, Continuez à lire. Sinon, assurez – vous de le savoir. Capacité de répondre à la question d’un ami: « sérieusement, qu’est – ce que l’API rest? »
Inscrivez – vous au routage en utilisant Register _ rest route pour commencer si vous connaissez bien toutes les idées de repos, alors la plupart des registers rest routes ont assez
NSO. Sinon, ça pourrait être déroutant. La fonction elle – même est similaire à celle utilisée: Add _ action (‘rest API init’, ‘wpshout Register routes’); Fonction wpshout _ Register routes () {Register rest route (‘myplugin \/ v1’, ‘\/ author \/ (? P \ D +, array (‘Methods’ = >’ get ‘,’ Callback ‘= >’ wpshout _ find author post title ‘,);} Les développeurs expérimentés de WordPress se rendront compte que nous travaillons sur une opération fonctionnelle. Dans notre cas, l’opération est rest _ API init. Comme vous pouvez le deviner, il a ajouté WordPress en 4.4, en utilisant la même fonction Register _ rest route. Donc, en appelant la fonction réelle de cette opération, nous allons discuter de trois sujets:
Espace de noms pour le paramètre. C’est le \
Fonction wpshout _ find author post Title ($Data) {$posts = get posts (array (‘author’ = > $data [‘id’,)); if (Empty ($posts)) {return null;} Retourner $posts [0] – > Post _ title;} En ce qui concerne notre fonction, Notez d’abord qu’elle reçoit un tableau de données $qui contient notre groupe d’acquisition.
Nom de l’actif – Id. C’est pourquoi il est utile: ensuite, nous pouvons utiliser des objets capturés pour faire des choses intéressantes. Par exemple, dans ce cas, vous recevez un message de l’auteur basé sur son ID utilisateur WordPress. Cette fonction est très simple, mais à des fins d’exemple seulement. Ce paramètre théorique répond simplement au titre du dernier billet de blog créé par l’utilisateur. C’est utile, mais ce n’est que le début de quelque chose d’intéressant que vous pouvez faire avec le paramètre rest.
Une autre chose à savoir est que ce sont des fonctions terminales dans lesquelles vous pouvez retourner les données que l’infrastructure WordPress va sérialiser pour vous sur json. C’est un écart important (pour moi, c’est une grande amélioration par rapport à l’Ajax de gestion classique): vous n’avez pas besoin de mourir, et vous n’avez pas besoin de répondre à vos résultats. Au lieu de cela, vous le retournez comme une structure PHP originale que WordPress convertit en json en arrière – plan. Ainsi, dans cet exemple de code, parce qu’il renvoie une chaîne, nous ne voyons qu’une seule chaîne dans les guillemets du paramètre: elle n’est pas imbriquée dans un objet json ou n’importe quel objet sauf si vous l’insérez.
Il ne s’agit pas d’une introduction exhaustive à la réalité du registre _ rest route. Bien que je l’utilise souvent, je n’ai toujours pas la chance de l’utiliser dans un projet significatif. (si vous demandez de l’aide à quelqu’un que vous connaissez, Press up sera disponible au troisième trimestre 2016 et au – delà. C’est – à – dire, en ce qui concerne l’utilisation efficace du routage Register _ rest je voudrais dire quelque chose de clair et rapide. D’autres méthodes de sélection ou plus doivent d’abord garder à l’esprit que le repos concerne les méthodes http et la façon dont vous y répondez en utilisant différentes actions dans votre système. Cela signifie que, comme nous l’avons mentionné dans l’article aperçu du repos, vous voudrez peut – être accepter les demandes de put, patch et post en
Point D. Il y a deux façons de le faire. Le premier point est très clair:
Register _ rest route (‘myplugin \/ v1’, ‘\/ update \/ (? P \ D +, tableaux (‘Methods’ = >’ Post, put, patch ‘,’ Callback ‘= >’ wpshout _ Special Update FUNCTION ‘,); Cependant, vous pouvez également utiliser les constantes de support dans la classe WP _ rest Server comme suit: Register rest route (‘myplugin \/ v1’, ‘\/ update \/ (? P) \ D +, tableau (‘Methods’ = > WP _ rest Server:: Editable,’ Callback ‘= >’ wpshout Special Update FUNCTION ‘,); Ces deux fonctions sont fonctionnellement équivalentes, mais cette dernière est plus simple et plus claire pour moi. En particulier pour les personnes qui ne peuvent pas utiliser couramment rest ou http. Il y a cinq constantes utiles sur la classe:
Read = ‘get’ creatable = ‘post’ Editable = ‘Post, put, patch’ deletable = ‘Delete’ all Methods = ‘get, Post, put, patch, delete’ at the end of the day you can choose to use them. Cependant, vous devriez savoir ce qu’ils signifient, que vous utilisiez ou non WP _ rest Server:: allmethods. Enfin, sachez que l’inclusion dans un objet PHP peut être bénéfique pour un ensemble de chemins rest qui sont mappés à une seule entité dans le système. Si vous créez un ensemble de fonctions pour créer, lire, mettre à jour et supprimer des ressources, il est préférable de les combiner structurellement étroitement.
Bien que nos exemples ne soient que des fonctionnalités aussi simples que la plupart des développeurs WordPress l’ont fait au fil des ans, lorsque vous avez plus de deux objets dans un seul objet, il est très utile de les mettre ensemble pour vous et d’autres qui pourraient lire votre code plus tard. Du côté plug – in de l’API rest, il y a une classe de contrôleur wp \ u rest \ u qui peut (peut – être devrait) être étendue lorsque vous travaillez sur un site fiable. Mais si ce n’est pas le cas, vous pouvez facilement et rapidement créer vos propres chemins et les utiliser efficacement dans vos objets. Tu dois juste t’habituer à définir T.