Je viens d'installer Wordpress 4.7. L'une des mentions de l'annonce est qu'elle dispose d'une API REST.
Ma compréhension est:
- Le plugin Wordpress REST API n'est plus nécessaire, car il est supposé qu'il a déjà été fusionné avec le noyau dans Wordpress 4.7.
- L'API Wordpress REST est activée par défaut
Cependant, je remarque que dans une installation vanilla Wordpress 4.7, aucun des points de terminaison ne semble fonctionner (par exemple http://examples.com/wp-json/wp/v2/posts
).
Comment savoir si la nouvelle API REST est réellement activée? L'API REST peut-elle être activée ou désactivée avec l'interface utilisateur WordPress vanille, ou dois-je installer un plugin tiers pour le faire?
<link rel='https://api.w.org/' href='https://example.com/wp-json/' />
Semble juste travailler sur mes sites.grep -r "<link rel='https://api.w.org/'" .
dans lehtml
répertoire, il renvoie un hit dans le fichier./wp-includes/rest-api.php
avec ce texte:echo "<link rel='https://api.w.org/' href='" . esc_url( $api_root ) . "' />\n";
<link href="http://example.com/wp-json/" rel="https://api.w.org/">
Réponses:
4.7 l'a activé par défaut. Le moyen facile de vérifier si cela fonctionne consiste simplement à visiter l'url example.com/wp-json, et vous devriez y obtenir une liste des points finaux enregistrés.
Il n'y a pas d'option officielle pour le désactiver car (au moins il y a eu une discussion à ce sujet, je ne sais pas s'il est entré dans la version), certaines fonctionnalités de base en dépendent.
Les choses les plus évidentes à vérifier si cela ne fonctionne pas sont vos règles htaccess, et avez-vous un répertoire wp-json
la source
/var/www/html
ou ses sous-répertoires. Je ne semble pas avoir de.htaccess
fichier (à part/var/www/html/wp-content/plugins/akismet/.htaccess
, devrais-je en avoir un?AllowOverride All
dans la<Directory "/var/www/html">
section de/etc/httpd/conf/httpd.conf
. C'est pourquoi il ignorait mes modifications.htaccess
. Désormais, avec un permalien autre que PLain, les points de terminaison de l'API REST fonctionnent.J'avais 4,7 également pensé que l'API REST était désactivée, mais j'ai été trompé par l'URL. Pour voir l'URL correcte, recherchez une ligne ressemblant à ceci:
lien rel = '
https://api.w.org/
' href = 'http://mysite?rest_route=/
' />. Donc, en utilisant http: // mysite? Rest_route = / comme préfixe, j'ai résolu mon problème. Par exemple, pour récupérer les messages, il suffit de taper: http: // mysite? Rest_route = / wp / jsonJe n'ai pas pu trouver sur la documentation que le paramètre de requête était nécessaire. Étais-je le seul?
la source
www.example.com?rest_route=/wp/v2/posts
Je vois que vous avez résolu le problème, mais en laissant ma solution ici car cela a fonctionné pour moi aussi. J'ai eu ce même problème lors de la mise à jour de la bêta15 vers l'API principale dans wp 4.7 Il s'avère que le problème était que j'avais des plugins qui utilisaient une fonction obsolète register_api_field que j'ai changé en register_rest_field selon cette note dans le changelog:
la source
Si l'API REST ne fonctionne pas d'origine ou après une nouvelle installation et après avoir tapé
alors vous devrez simplement activer vos "permaliens" comme post_name situé:
Tableau de bord WP-> Paramètres-> Permaliens
Ou si vous ne souhaitez pas activer les permaliens, vous pouvez simplement taper:
Mec, je souhaite que WordPress mette à jour son manuel Rest pour qu'il soit plus convivial. J'aime l'ancienne version de docs :)
la source