对pre_get_posts
运行REST API请求。您的问题可能是您的请求没有经过正确的身份验证,因此$user_ID
未设置。要允许REST API识别登录的用户,您需要发送wp_rest
请求的nonce。您可以使用wp_create_nonce( \'wp_rest\' )
并将其与请求一起作为X-WP-Nonce
标题。这是documented 有关详细信息,请参阅《开发人员手册》。
这与原始问题无关,但问题中的代码将应用于所有查询。这包括帖子、页面、菜单等。因此,如果您不希望出现这种行为,则需要添加某种检查,以便您的代码仅适用于某些查询。例如:
function only_users_todos( $query ) {
if ( $query->get( \'post_type\' ) === \'todo\' ) {
$query->set( \'author\', get_current_user_id() );
}
}
add_action( \'pre_get_posts\', \'only_users_todos\' );
此外,
pre_get_posts
是一个操作,而不是筛选器,因此不需要返回
$query
.