因此,我最近使用 Docker 安装了 WordPress,这是来自 Docker 文档 (https://docs.docker.com/compose/wordpress/) 的一个简单的填空组合文件。

version: '3'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD:
      MYSQL_DATABASE:
      MYSQL_USER:
      MYSQL_PASSWORD:

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER:
      WORDPRESS_DB_PASSWORD:
volumes:
    db_data:

它正在运行。这部分很好,但是当我前往 http://siteurl/wp-json 时,我得到了 404。站点工作正常,但无法访问 REST API。我有另一个网站在 WAMP 上运行,当我到达该地址时,它会弹出:
{
  "name": "localhost:8090",
  "description": "Just another WordPress site",
  "url": "http://localhost:8090/wordpress",
  "home": "http://localhost:8090/wordpress",
  "gmt_offset": "0",
  "timezone_string": "",
  "namespaces": [
    "oembed/1.0",
    "wp/v2"
  ],
  ...

两个站点都运行 4.8。在 Docker 上运行 WordPress 时如何访问 REST API?我通常使用 Docker 在本地进行开发并且不记得这是一个问题。

(顺便说一句,我创建了一个 Bitnami 发布的 WordPress 容器,并且在获得正确响应时没有问题。所以这是...官方 WordPress 图像的问题?也许是图像的底层堆栈??我可以使用它,但我真的,真的,真的很想知道问题是什么,因为我已经看到我的开发人员遇到了类似的问题)

最佳答案

事实证明,这与您网站的永久链接设置有关。当您将站点设置为使用自定义永久链接设置时,/wp-json/wp/v2 端点可用。如果我使用 /%post%/ 永久链接结构,它可以工作。对于使用其他永久链接结构的站点,还有一种替代途径:



来源:https://developer.wordpress.org/rest-api/extending-the-rest-api/routes-and-endpoints/

事实上 ?rest_route=/wp/v2/posts 似乎总是有效,使其成为更可靠的选择。

关于Docker REST API 上的 WordPress 4.8 无法访问,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44814644/

10-16 12:28