钩子文档

wp_ajax_nopriv_{$action}

💡 云策文档标注

概述

wp_ajax_nopriv_{$action} 是一个 WordPress Hook,用于处理未登录用户的 Ajax 请求。它与 wp_ajax_{$action} 功能类似,但专门针对未认证用户。

关键要点

  • 这是一个动态 Hook,$action 部分对应 Ajax 回调函数的名称。
  • 用于处理当 is_user_logged_in() 返回 false 时的 Ajax 请求。
  • ajaxurl JavaScript 全局属性不会自动定义,需要手动包含或使用 wp_localize_script() 和 admin_url('admin-ajax.php')。
  • 相关参考:wp_ajax_nopriv_{$_REQUEST['action']} 和 Ajax Plugin Handbook。
  • 源调用:do_action("wp_ajax_nopriv_{$action}")。
  • 自 WordPress 2.8.0 版本引入。

📄 原文内容

Fires non-authenticated Ajax actions for logged-out users.

Description

The dynamic portion of the hook name, $action, refers to the name of the Ajax action callback being fired.

More Information

This hook is functionally the same as wp_ajax_{$action}, except the “nopriv” variant is used for handling AJAX requests from unauthenticated users, i.e. when is_user_logged_in() returns false.

Unlike wp_ajax_{$action} the ajaxurl javascript global property will not be automatically defined and must be included manually or by using wp_localize_script() with admin_url( ‘admin-ajax.php’ ) as the data.

See also wp_ajax_nopriv_{$_REQUEST[‘action’]}.

For more information, see Ajax Plugin Handbook on the new WordPress Developer Resource.

Source

do_action( "wp_ajax_nopriv_{$action}" );

Changelog

Version Description
2.8.0 Introduced.