我尝试使用配置为多站点的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查询吗?
答案 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文件代码。
答案 1 :(得分:0)
我直接从wordpress get_posts
函数转储或仅返回查询。并且该查询显示为实际有效,并按ID返回帖子。
但是从get_posts
返回帖子后,get_post
类的函数WP_REST_Posts_Controller
检查其字段post_type
等于返回帖子的post_type
。如果不相等,则会引发一个提到的错误。
该错误实际上并未描述问题。实际上,职位类型不等于控制器的职位类型。
实际上,帖子类型不是post
,而是page
。
因此需要从/posts
切换到/pages
使用剩余端点。