ACF prevents some REST responses
还没有人认领这个 Issue。
评估
调研方向
定位 ACF_Rest_Api 类并跟踪其 rest_pre_dispatch 初始化回调,尤其是 rest_api_enabled 和 rest_api_embed_links 分支。使用提供的 filter 重现该行为,并验证在启用 ACF 时,优先级较低的自定义 WP_Error 响应仍然有效。
由索引模型根据 Issue 内容生成。
描述
Describe the bug
If another plugin uses the filter rest_pre_dispatch to make the REST API to return a custom response, ACF prevents it.
To Reproduce
- This code should stop any REST request:
add_filter(
'rest_pre_dispatch',
static function ( $response ) {
return new WP_Error( 'oh_no', __( 'Oh no no no no no.' ), array( 'status' => 404 ) );
},
5 // Lower than 10.
);
- But with ACF enabled, it doesn't happen.
Code
class ACF_Rest_Api {
// ...
public function __construct() {
add_filter( 'rest_pre_dispatch', array( $this, 'initialize' ), 10, 3 );
add_action( 'rest_api_init', array( $this, 'register_field' ) );
}
public function initialize( $response, $handler, $request ) {
if ( ! acf_get_setting( 'rest_api_enabled' ) ) {
return; // Should return `$response`.
}
// ...
if ( acf_get_setting( 'rest_api_embed_links' ) ) {
$this->embed_links = new ACF_Rest_Embed_Links();
$this->embed_links->initialize();
}
// Should return `$response`.
}
// ...
}
Version Information:
- WordPress Version 6.9-beta3
- PHP Version 8.0.29
- ACF Version 6.6.2
- "Browser" Insomnia 12
- 主要语言
- PHP
- 星标
- 946
- 派生
- 197
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
AdvancedCustomFields/acf 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 78/100
AdvancedCustomFields/acf#1041 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 86/100
AdvancedCustomFields/acf#1038 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
AdvancedCustomFields/acf#1034 · 2 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 86/100
AdvancedCustomFields/acf#1032 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
AdvancedCustomFields/acf#1029 · 1 条评论 ·
查看 AdvancedCustomFields/acf 的全部 Issue
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 68/100
rap2hpoutre/fast-excel#425 ·
-
bug Medium Priority
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
sync-en
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
sync-en
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 2 天内回复
-
Перевод устарел
难度 1/5 1-3 小时 新手友好度 78/100