WordPress多站点-API帖子返回一个空数组

时间:2018-07-03 11:33:05

标签: wordpress wordpress-rest-api

我尝试使用配置为多站点的wordpress。 /posts网址返回可以很好地发布,除了一个网站。

从一个实际上存在帖子的站点(site_id:2),/posts api端点返回一个空数组。

另一个端点,例如/media/comments返回json,其中包含通过ID引用某些帖子的数据。但是像/posts/{id}这样的endponts实际上是id的帖子,会返回错误json并显示错误:

  

{“代码”:“ rest_post_invalid_id”,“消息”:“无效的帖子ID。”,“数据”:{“状态”:404}}

当我在发生上述错误的地方调用get_current_site()时,它针对所有站点(针对与每个站点相关联的所有url)返回相同的数据,但是针对(site_id:1或3)返回相同的数据上面由rest api生成的帖子列表不为空,仅/posts的网站ID:2出现问题。

可以检查什么?

wp中有什么地方可以拦截所有sql查询吗?

2 个答案:

答案 0 :(得分:0)

您可以使用以下命令拦截WordPress SQL查询:

SDL_Window * window = SDL_CreateWindow("program", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1366, 768, SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN);
SDL_GLContext glContext = SDL_GL_CreateContext(window);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 4);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
glewInit();
SDL_SetRelativeMouseMode(SDL_TRUE);
SDL_Cursor * cursor;
cursor = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_HAND);
SDL_SetCursor(cursor);
SDL_ShowCursor(SDL_ENABLE);

另一个例子是

<?php echo $GLOBALS['wp_query']->request; ?>

另一种方法是在下面的链接中使用此functions.php文件代码。

Best Collection of Code for your functions.php file

答案 1 :(得分:0)

我直接从wordpress get_posts函数转储或仅返回查询。并且该查询显示为实际有效,并按ID返回帖子。

但是从get_posts返回帖子后,get_post类的函数WP_REST_Posts_Controller检查其字段post_type等于返回帖子的post_type。如果不相等,则会引发一个提到的错误。

该错误实际上并未描述问题。实际上,职位类型不等于控制器的职位类型。

实际上,帖子类型不是post,而是page

因此需要从/posts切换到/pages使用剩余端点。