这是一份(希望是)全面的 WordPress 2.1 及以上版本可用操作钩子的列表。更多信息:

(如果您想添加或澄清此文档,请遵循现有条目的风格。描述操作何时运行,如果操作函数接受参数,请描述这些参数。)

典型请求期间运行的操作

当已登录用户打开主页时会调用这些操作,此列表可能已过时。此列表可能仅显示每次调用操作的第一个实例,并且在许多情况下没有函数挂钩到该操作。主题和插件可能导致操作在请求期间被多次调用并在不同时间调用。作为证明,您可以在此列表中看到特定于 Twenty Eleven 主题的操作调用。Cron 任务也可能在用户访问站点时触发,从而增加额外的操作调用。此列表应被视为 WordPress 操作执行顺序的指南或近似值,而不是具体规范。

操作通过函数 do_action() 调用,除非标记为 (ref array) 的操作,它们通过函数 do_action_ref_array() 调用。

muplugins_loaded必须使用插件加载之后。
registered_taxonomy用于分类、post_tag、等。
registered_post_type用于文章、页面、等。
plugins_loaded在活动插件加载之后,可插拔函数加载之前。
sanitize_comment_cookies当评论 Cookie 被清理时。
setup_theme主题加载之前。
load_textdomain用于 default 域
after_setup_theme通常用于初始化主题设置/选项。这是主题可用的第一个操作钩子,在激活主题的 functions.php 文件加载后立即触发。add_theme_support() 应在此处调用,因为 init 操作钩子对于添加某些功能来说太晚了。在此阶段,当前用户尚未通过身份验证。
auth_cookie_malformed
auth_cookie_valid
set_current_user
init通常由插件用于初始化。此时当前用户已通过身份验证。
└─ widgets_init用于注册侧边栏。在 'init' 优先级 1 时触发(因此在优先级 ≥ 1 的 'init' 操作之前!)
register_sidebar用于每个侧边栏和页脚区域
wp_register_sidebar_widget用于每个小工具
wp_default_scripts(引用数组)
wp_default_styles(引用数组)
admin_bar_init
add_admin_bar_menus
wp_loadedWordPress 完全加载之后
parse_request允许操纵 HTTP 请求处理(引用数组)
send_headers允许自定义 HTTP 头(引用数组)
parse_query查询变量设置之后(引用数组)
pre_get_posts在执行查询之前暴露查询变量对象。(引用数组)
posts_selection由缓存插件使用。
wpWP 对象设置之后(引用数组)
template_redirect确定加载哪个模板之前。
get_header加载头部模板文件之前。不适用于区块主题。
wp_enqueue_scripts脚本和样式入队时。
twentyeleven_enqueue_color_scheme(Twenty Eleven 专用)
wp_head用于在前端 head 标签中打印脚本或数据。
wp_print_styles在 $handles 队列中的样式打印之前。
wp_print_scripts在 $handles 队列中的脚本打印之前。
get_search_form
loop_start(引用数组)
the_post(引用数组)允许在查询后立即修改帖子对象
get_template_part_content内容的模板部分
loop_end(引用数组)
get_sidebar加载侧边栏模板文件之前。
dynamic_sidebar在调用小工具的显示回调之前。
get_search_form
pre_get_comments(引用数组)
wp_meta在侧边栏中显示回显内容之前。
get_footer加载页脚模板文件之前。不适用于区块主题。
get_sidebar加载侧边栏模板文件之前。不适用于区块主题。
twentyeleven_credits(Twenty Eleven 专用)
wp_footer确定加载哪个模板之前。
wp_print_footer_scripts打印页脚脚本时。
admin_bar_menu(引用数组)
wp_before_admin_bar_render渲染管理栏之前。
wp_after_admin_bar_render渲染管理栏之后。
shutdownPHP 执行即将结束之前。

在管理员页面请求期间运行的操作

这些操作在已登录用户打开 帖子 页面时运行。此列表仅显示操作首次被调用的情况,在许多情况下没有函数挂钩到该操作。每个管理员页面都有一组不同的操作列表,具体取决于页面的目的和安装的插件。此列表应视为指南或近似值,而非具体的规范。

在这些操作中,(hookname) 取决于页面。对于帖子页面,它是 edit.php,或者对于主题的“背景”页面,它是 appearance_page_custom-background。

操作通过函数 do_action() 调用,除非标记为(引用数组),它们通过函数 do_action_ref_array() 调用。

muplugins_loaded必须使用插件加载之后
registered_taxonomy用于分类、post_tag 等。
registered_post_type用于文章、页面等。
plugins_loaded激活的插件和可替换函数加载之后
sanitize_comment_cookies
setup_theme
load_textdomain针对域 default
after_setup_theme在此阶段,当前用户尚未通过身份验证。
load_textdomain针对域 twentyeleven
auth_cookie_valid
set_current_user
init通常由插件用于初始化。此时当前用户已通过身份验证。
└─ widgets_init用于注册侧边栏。在 'init' 时触发,优先级为 1。
register_sidebar针对每个侧边栏
wp_register_sidebar_widget针对每个小工具
wp_default_scripts(引用数组)
wp_default_styles(引用数组)
admin_bar_init
add_admin_bar_menus
wp_loadedWordPress 完全加载之后
auth_cookie_valid
auth_redirect
_admin_menu另见:_user_admin_menu、_network_admin_menu
admin_menu另见:user_admin_menu、network_admin_menu
admin_init
current_screen
load-{$page_hook}
send_headers可添加自定义 HTTP 头的位置
pre_get_posts在执行查询之前暴露 query-variables 对象。(引用数组)
posts_selection
wpWP 对象设置之后(引用数组)
admin_xml_ns
admin_xml_ns
admin_enqueue_scripts
admin_print_styles-{$hook_suffix}
admin_print_styles
admin_print_scripts-{$hook_suffix}
admin_print_scripts
wp_print_scripts
admin_head-{$hook_suffix}
admin_head
admin_menu
in_admin_header
admin_notices
all_admin_notices
restrict_manage_posts
the_post(引用数组)
pre_user_query(引用数组)
in_admin_footer
admin_footer
admin_bar_menu(引用数组)
wp_before_admin_bar_render
wp_after_admin_bar_render
admin_print_footer_scripts
admin_footer-{$hook_suffix}管理页面页脚
shutdownPHP 执行即将结束
wp_dashboard_setup允许自定义管理仪表盘

文章、页面、附件和分类操作(管理后台)

post_submitbox_misc_actions:当生成编辑页面以向提交框(显示发布按钮的区域)添加某些内容(例如字段)时运行。无函数参数。

add_attachment:当附加文件首次添加到数据库时运行。动作函数参数:附件 ID。

add_category:与 create_category 相同。

{$taxonomy}_add_form_fields:当在管理后台创建分类法添加表单时运行。适用于在提交按钮之前在此表单中添加字段。例如 category_add_form_fields。

{$taxonomy}_edit_form:当在管理后台创建分类法术语编辑表单时运行。适用于向此表单添加新字段。

clean_post_cache:当清理文章缓存时运行。动作函数参数:文章 ID。参见 clean_post_cache()。

create_{$taxonomy}:当创建新的分类法术语时运行。动作函数参数:术语 ID。

delete_attachment:在附件文件从数据库删除之前运行。操作函数参数:附件 ID。(2.8 版本之前,此钩子在附件删除后触发。)

delete_{$taxonomy}:在分类法术语从数据库删除并更新其对应的链接/帖子以移除该术语后运行。操作函数参数:术语 ID。

wp_trash_post:当文章或页面即将被移入回收站时运行。操作函数参数:文章或页面 ID。

trashed_post:当文章或页面刚刚被移入回收站后运行。操作函数参数:文章或页面 ID。

untrash_post:在恢复文章或页面(即取消删除)之前运行。操作函数参数:文章或页面 ID。

untrashed_post:在恢复文章或页面(即取消删除)之后运行。操作函数参数:文章或页面 ID。

before_delete_post:当文章或页面即将被删除时运行。此时评论、附件和元数据仍然可用。操作函数参数:文章或页面 ID。

delete_post:当文章或页面即将被删除时运行。此时评论、附件和元数据已被删除。操作函数参数:文章或页面 ID。

deleted_post:在文章或页面刚刚被删除后运行。操作函数参数:文章或页面 ID。

edit_attachment:当附件文件被编辑/更新到数据库时运行。操作函数参数:附件 ID。

edit_category:当分类法被更新/编辑时运行,包括添加/删除文章或博客圈链接或其分类法(这会导致分类法的计数更新)。操作函数参数:分类法 ID。

edit_post:当文章或页面被更新/编辑时运行,包括添加或更新评论(这会导致文章的评论计数更新)。操作函数参数:文章或页面 ID。

pre_post_update:在文章或页面即将被更新之前运行。操作函数参数:文章或页面 ID。

post_updated:在文章或页面被更新后运行。操作函数参数:文章或页面 ID,以及更新前后的 WP_Post 对象。

transition_post_status:当发生任何文章状态转换时运行。操作函数参数:$new_status,$old_status,$post 对象。(另见 文章状态转换。)

(旧状态)to(新状态):当文章状态从 $old_status 转换为 $new_status 时运行。操作函数参数:$post 对象。(另见 文章状态转换。)

{$new_status}_{$post->post_type}:当类型为 $post_type 的文章从任何其他状态转换到 $status 时运行。操作函数参数:文章 ID,$post object。(另见 文章状态转换。)

publish_post(未弃用):当文章被发布,或者被编辑且其状态更改为“已发布”时运行。此操作钩子符合 {$new_status}_{$post->post_type} 类型的操作钩子。操作函数参数:文章 ID,$post object。(另见 文章状态转换。)

publish_page:当页面被发布,或者被编辑且其状态更改为“已发布”时运行。此操作钩子符合 {$new_status}_{$post->post_type} 类型的操作钩子。操作函数参数:文章 ID,$post object。(另见 文章状态转换。)

publish_phone:在通过电子邮件添加文章后立即运行。操作函数参数:文章 ID。

save_post:每当创建或更新文章或页面时运行,这可能来自导入、文章/页面编辑表单、xmlrpc 或通过电子邮件发布的文章。操作函数参数:文章 ID 和文章对象。在数据保存到数据库后运行。注意,文章 ID 可能引用的是文章修订版而不是最后保存的文章。请使用 wp_is_post_revision() 获取真实文章 ID。

updated_postmeta:当元数据被更新时运行。

wp_insert_post:与 save_post 相同,在其后立即运行。

xmlrpc_publish_post:当文章通过 XMLRPC 请求被发布,或者通过 XMLRPC 编辑且其状态为“已发布”时运行。操作函数参数:文章 ID。

分类法与术语

create_term:在新术语创建后、术语缓存清理前运行。

created_term:在新术语创建后、术语缓存清理后运行。

create_$taxonomy:在为特定分类法创建新术语后运行。

created_$taxonomy:在特定分类法中新术语创建后、术语缓存清理后运行。

add_term_relationship(自 2.9.0 版本起):在添加对象 - 术语关系之前运行。

added_term_relationship(自 2.9.0 版本起):在添加对象 - 术语关系之后运行。

set_object_terms(自 2.8.0 版本起):在设置对象的术语后运行。

edit_terms(自 2.9.0 版本起):在给定的术语被编辑之前运行。

edited_terms:在数据库中保存分类法/分类变更之后运行。

edit_term_taxonomy:在更新术语 - 分类法关系之前运行。

edited_term_taxonomy:在更新术语 - 分类法关系之后运行。

edit_term_taxonomies(自 2.9.0 版本起):在将要删除的术语的子项重新分配父级之前运行。

edited_term_taxonomies(自 2.9.0 版本起):在将要删除的术语的子项重新分配父级之后运行。

edit_$taxonomy:在特定分类法中的术语被编辑后运行。

edited_$taxonomy:在特定分类法中的术语被编辑后、术语缓存清理后运行。

pre_delete_term(自 4.1.0 版本起):在对文章或术语进行任何修改之前运行。

delete_term_taxonomy(自 2.9.0 版本起):在将术语分类法 ID 从数据库删除后(在更改子项术语之后)运行。

deleted_term_taxonomy(自 2.9.0 版本起):在分类法术语 ID 被删除后运行。

delete_term(自 2.5.0 版本起):在术语从数据库删除且缓存已清理后运行。(参数:$Term_ID, $Term_taxonomy_ID, $Taxonomy_slug, $already_deleted_term)

delete_$taxonomy(自 2.3.0 版本起):在特定分类法中的术语被删除后运行。(参数:$Term_ID, $Term_taxonomy_ID, $already_deleted_term)

delete_term_relationships(自 2.9.0 版本起):在对象 - 术语关系被删除前运行。

deleted_term_relationships(自 2.9.0 版本起):在对象 - 术语关系被删除后运行。

clean_object_term_cache(自 2.5.0 版本起):在对象术语缓存清理后运行。

clean_term_cache(自 2.5.0 版本起):在每个分类法的术语缓存清理后运行。

split_shared_term(自 4.2.0 版本起):在先前共享的分类法术语被拆分为两个独立术语后运行。

pre_term_{$field}:在分类法术语数据保存到数据库前运行。例如,pre_term_description。

pre_{$taxonomy}_{$field}:在术语字段保存到数据库前运行。例如,pre_category_description。

评论、Ping 和 Trackback 操作

comment_closed:当尝试显示评论输入表单时,如果文章被标记为不允许评论,则运行此操作。操作函数参数:文章 ID。

comment_id_not_found:当尝试显示评论或评论输入表单时,如果未找到文章 ID,则运行此操作。操作函数参数:文章 ID。

comment_flood_trigger:当检测到评论洪水攻击时,在调用 wp_die 阻止接受该评论之前运行。操作函数参数:上一条评论的时间,当前评论的时间。

comment_{$old_status}_to_{$new_status}:当评论状态发生转换时运行。操作函数参数:评论对象。

comment_on_draft:当尝试显示评论输入表单或评论时,如果文章是草稿,则运行此操作。操作函数参数:文章 ID。

comment_post:在评论刚保存到数据库后立即运行。操作函数参数:评论 ID,审批状态(“spam",或 0/1 分别表示未批准/已批准)。

edit_comment:在评论在数据库中更新/编辑后运行。操作函数参数:评论 ID。

delete_comment:在评论即将从数据库删除前立即触发。操作函数参数:评论 ID。

deleted_comment:在评论刚刚从数据库删除后立即触发。操作函数参数:评论 ID。

trash_comment:在评论即将移入回收站前立即触发。操作函数参数:评论 ID。

trashed_comment:在评论刚刚移入回收站后立即触发。操作函数参数:评论 ID。

untrash_comment:在评论即将从回收站恢复前立即触发。操作函数参数:评论 ID。

untrashed_comment:在评论刚刚从回收站恢复后立即触发。操作函数参数:评论 ID。

spam_comment:在评论即将被标记为垃圾邮件前立即触发。操作函数参数:评论 ID。

spammed_comment:在评论刚刚被标记为垃圾邮件后立即触发。操作函数参数:评论 ID。

unspam_comment:在评论即将取消垃圾邮件标记前立即触发。操作函数参数:评论 ID。

unspammed_comment:在评论刚刚取消垃圾邮件标记后立即触发。操作函数参数:评论 ID。

pingback_post:当向文章添加 Ping 时运行。操作函数参数:评论 ID。

pre_ping:在 Ping 完全处理之前运行。操作函数参数:待处理的帖子链接数组,以及文章的 "pung" 设置。

trackback_post:当向文章添加 Trackback 时运行。操作函数参数:评论 ID。

wp_blacklist_check:用于检查评论是否应被列入黑名单。操作函数参数:作者姓名,作者邮箱,作者 URL,评论内容,作者 IP 地址,作者的用户代理(浏览器)。您的函数可以执行 wp_die 来拒绝评论,或者修改其中一个输入参数,使其包含 WordPress 选项中设置的黑名单关键词之一。

wp_insert_comment:每当创建评论时运行。

wp_set_comment_status:当评论状态改变时运行。操作函数参数:评论 ID,指示新状态的字符串(“delete",“approve",“spam",“hold")。

友情链接操作

add_link:当新的友情链接首次添加到数据库时运行。操作函数参数:链接 ID。

delete_link:当友情链接被删除时运行。操作函数参数:链接 ID。

edit_link:当友情链接被编辑时运行。操作函数参数:链接 ID。

订阅源操作

atom_entry:在 Atom 订阅源的每个博客条目信息打印后(但在关闭条目标签前)运行。

atom_head:在 Atom 订阅源中打印博客信息后,第一个条目出现前运行。

atom_ns:在 Atom 订阅源的根 XML 元素内部运行(用于添加命名空间)。

commentrss2_item:在评论订阅源中打印单个评论信息后(但在关闭项目标签前)运行。操作函数参数:评论 ID,文章 ID。

do_feed_{$feed}:在生成订阅源时运行,其中 feed 是订阅源类型(rss2, atom, rdf 等)。使用小于 10 的优先级以在打印订阅源之前运行。操作函数参数:true(订阅源用于评论)或 false(用于文章)。

rdf_header:在 RDF 订阅源中打印博客信息后,第一个条目出现前运行。

rdf_item:在 RDF 订阅源的每个博客条目信息打印后(但在关闭项目标签前)运行。

rdf_ns:在 RDF 订阅源的根 XML 元素内部运行(用于添加命名空间)。

rss_head:在 RSS 订阅源中打印博客信息后,第一个条目出现前运行。

rss_item:在 RSS Feed 中的每个博客条目打印完条目信息后(但在关闭 item 标签之前)运行。

rss2_head:在 RSS 2 Feed 中打印完博客信息后、第一个条目之前运行。

rss2_item:在 RSS 2 Feed 中的每个博客条目打印完条目信息后(但在关闭 item 标签之前)运行。

rss2_ns:在 RSS 2 Feed 的根 XML 元素内部运行(用于添加命名空间)。

模板操作

after_setup_theme:在主题初始化期间运行。通常用于执行主题的基本设置、注册和初始化操作。

comment_form:在由 comment_form() 渲染的评论表单底部运行,位于闭合

comment_form_after:在由 comment_form() 渲染的评论表单之后运行,位于闭合

do_robots:当模板文件选择器确定这是 robots.txt 请求时运行。

do_robotstxt:在 do_robots() 函数运行期间,在该函数打印 robots.txt 文件的 Disallow 列表之前运行。

get_footer:当模板调用 get_footer() 函数时运行,在加载 footer.php 模板文件之前。

get_header:当模板调用 get_header() 函数时运行,在加载 header.php 模板文件之前。

switch_theme:当博客主题更改时运行。动作函数参数:新主题的名称。如果在主题中使用,仅当添加该动作的主题是被禁用的主题时才有效。

after_switch_theme:当博客主题更改时运行。动作函数参数:新主题的名称。如果在主题中使用,仅当添加该动作的主题是被启用的主题时才有效。可用于在启用主题时运行特定代码。

load-themes.php:当主题被激活或停用(替换为其他主题)时运行。

template_redirect:在确定用于显示请求页面的模板文件之前运行。

wp_footer:当模板调用 wp_footer() 函数时运行,通常在博客页面底部附近。

wp_head:当模板调用 wp_head() 函数时运行。此钩子通常放置在页面模板顶部附近,位于

wp_meta:当 sidebar.php 模板文件调用 wp_meta() 函数时运行,允许插件将内容插入侧边栏。

wp_print_scripts:在 WordPress 将注册的 JavaScript 脚本打印到页面头部之前运行。

管理操作

activate_{$plugin}:在插件首次激活时运行。请参阅 Function_Reference/register_activation_hook。

activity_box_end:在管理仪表板屏幕上的活动框末尾运行。

add_category_form_pre:在管理菜单中将添加分类表单显示在屏幕上之前运行。

add_option_{$option}:在由 add_option() 函数添加 WordPress 选项后运行。动作函数参数:选项名称、选项值。必须为希望响应的特定选项添加动作,例如使用 'add_option_foo' 来响应“foo"选项被添加的情况。

add_option:在选项添加到数据库之前运行。

added_option:在选项添加完成后运行。

admin_head:在 HTML

admin_head-{$hook_suffix}:在 HTML

admin_init:在渲染每个管理页面之前,于所有管理页面开始时运行。请参阅 wp-admin/admin.php、wp-admin/admin-post.php 和 wp-admin/admin-ajax.php。

admin_footer-{$hook_suffix}:在

admin_post_{$action}:另见:admin_post_nopriv_{$action} – 处理未指定的 GET 或 POST 请求。

admin_footer:在管理面板内部、body 标签结束时运行。

admin_enqueue_scripts:在 HTML 头部运行,以便插件或主题可以向所有管理页面入队 JavaScript 和 CSS。

admin_print_scripts:在 HTML 头部运行,以便插件可以向所有管理页面添加 JavaScript 脚本。

admin_print_scripts-{$hook_suffix}:用于在特定插件生成的管理页面的 HTML head 部分打印 JavaScript 脚本。在使用任何向管理菜单添加插件菜单项的函数时,会返回 (page_hook):例如 add_management_page()、add_options_page() 等。示例:

function myplugin_menu() {
    if ( function_exists( 'add_management_page' ) ) {
        $page = add_management_page( 'myplugin', 'myplugin', 'manage_options', 'myplugin_slug', 'myplugin_admin_page' );
        add_action( "admin_print_scripts-$page", 'myplugin_admin_head' );
    }
}

admin_print_styles:在 HTML 头部运行,以便插件可以向所有管理页面添加 CSS/样式表。

admin_print_styles-{$hook_suffix}:当应为特定管理页面使用 wp_enqueue_style() 入队样式时运行。使用 add_submenu_page() 等函数的返回值来确定 (page_hook) 的值。

check_passwords:在创建新用户时验证密码的双重输入。动作函数参数:登录名数组、第一个密码、第二个密码。

dbx_post_advanced:在管理菜单中的页面编辑屏幕的“高级”部分底部运行。

dbx_post_sidebar:在管理菜单中的页面编辑屏幕的侧边栏底部运行。

dbx_post_advanced:在管理菜单中的帖子编辑屏幕的“高级”部分底部运行。

dbx_post_sidebar:在管理菜单中的帖子编辑屏幕的侧边栏底部运行。在 WordPress 2.5 及更高版本中使用 add_meta_box()。

deactivate_{$plugin}:当插件被停用后运行。

delete_option_{$option}:在 delete_option() 函数删除 WordPress 选项后运行。操作函数参数:选项名称。您必须为特定的选项添加操作,例如 'delete_option_foo',以便在选项 "foo" 被删除时做出响应。

delete_option:在选项从数据库中被删除之前运行。

deleted_option:在选项被删除后运行。

delete_user:当用户被删除时运行。操作函数参数:用户 ID。

edit_category_form:在添加/编辑分类表单显示到屏幕后运行(但在 HTML 表单标签结束之前)。

edit_category_form_pre:在管理菜单中显示编辑分类表单之前运行。

edit_tag_form:在添加/编辑标签表单显示到屏幕后运行(但在 HTML 表单标签结束之前)。

edit_tag_form_pre:在管理菜单中显示编辑标签表单之前运行。

edit_form_top:在 WordPress 文章编辑屏幕(以及自定义文章类型)的标题之前、初始隐藏字段(user_ID、action 等)之后,在表单内部运行。

edit_form_after_title:在 WordPress 文章编辑屏幕(以及自定义文章类型)的标题之后、内置的 WordPress 内容区域之前运行。

edit_form_after_editor:在 WordPress 文章编辑器之后立即运行,但在所有其他元数据框之前。自定义文章类型中也可用。

edit_form_advanced:在管理菜单中的文章编辑表单的“高级”部分之前立即运行。

edit_page_form:在管理菜单中的页面编辑表单的“高级”部分之前立即运行。

edit_user_profile:在管理菜单中的用户个人资料编辑屏幕末尾附近运行。

load-{$pagenow}:当加载管理菜单页面时运行。通常不会直接添加此操作——有关如何添加管理菜单的更多详细信息,请参阅 添加管理菜单。如果您确实想直接使用它,add_options_page() 和类似函数的返回值会提供操作名称中的"(page)"部分。

login_form:在登录表单结束前立即运行。

login_head:在登录页面的 HTML head 部分结束前立即运行。

lost_password:在登录屏幕上打印“通过电子邮件检索您的密码”表单之前运行。

lostpassword_form:在用于通过电子邮件检索用户密码的表单结束时运行,以便插件可以附加额外字段。

lostpassword_post:当用户请求发送电子邮件以检索其密码时运行,以便插件可以在处理之前修改 PHP $_POST 变量。

manage_link_custom_column:当管理屏幕中存在未知的列名时运行。操作函数参数:列名、链接 ID。另见 插件 API/过滤器参考 中的过滤器 ,该过滤器用于添加自定义列。

manage_posts_custom_column:当管理文章的管理屏幕中存在未知的列名时运行。操作函数参数:列名、文章 ID。另见 manage_posts_columns 过滤器(位于 插件 API/过滤器参考 中),该过滤器用于添加自定义列。(示例和用法请参见 Scompt 的教程)。

manage_pages_custom_column:当管理页面的管理屏幕中存在未知的列名时运行。操作函数参数:列名、页面 ID。另见 manage_pages_columns 过滤器(位于 插件 API/过滤器参考 中),该过滤器用于添加自定义列。

manage_media_custom_column:当管理媒体的管理屏幕中存在未知的列名时运行。操作函数参数:列名、页面 ID。另见 manage_media_columns 过滤器(位于 插件 API/过滤器参考 中),该过滤器用于添加自定义列。

manage_{$post->post_type}_posts_custom_column:当管理自定义文章类型的管理屏幕中存在未知的列名时运行。操作函数参数:列名、文章 ID。另见 manage_{$post_type}_posts_columns 过滤器,该过滤器用于为自定义文章类型添加自定义列。

password_reset:在将用户密码重置为随机新密码之前运行。

personal_options_update:当用户从管理屏幕更新个人选项时运行。

plugins_loaded:在所有插件加载完成后运行。

profile_personal_options:在用户个人资料编辑屏幕的“个人选项”部分结束时运行。

profile_update:当用户个人资料更新时运行。操作函数参数:用户 ID。

quick_edit_custom_box:在创建快速编辑器时存在未知列名时运行。

register_form:在新用户注册表单结束前立即运行。

register_post:在处理新用户注册请求之前运行。

restrict_manage_posts:在管理菜单中将待编辑的文章列表显示到屏幕之前运行。

retrieve_password:在检索用户密码时运行,以便向其发送提醒电子邮件。操作函数参数:登录名。

set_current_user:在默认 wp_set_current_user() 函数更改用户后运行。注意 wp_set_current_user() 也是一个“可插拔”函数,意味着插件可以覆盖它;请参阅 插件 API)。

show_user_profile:在用户个人资料编辑屏幕末尾附近运行。

sidebar_admin_page:在小部件管理页面的主要内容之后运行。

sidebar_admin_setup:在编辑侧边栏中显示的小部件时早期运行。

update_option_{$option}:在 update_option() 函数更新 WordPress 选项后运行。操作函数参数:旧选项值,新选项值。您必须为希望响应的特定选项添加操作,例如使用 'update_option_foo' 来响应选项 "foo" 被更新的情况。

update_option:在选项更新到数据库之前运行。

updated_option:在选项更新后运行。

user_new_form:在“添加新用户”屏幕的末尾附近运行。操作函数参数:在多站点环境中传递字符串 "add-existing-user",在单站点及网络管理员中传递 "add-new-user"。

user_profile_update_errors:在更新的用户详细信息提交到数据库之前立即运行。

wpmu_new_user:当用户在多站点环境中首次创建个人资料时运行。操作函数参数:用户 ID。如果不在多站点环境中,请使用 user_register。

user_register:当用户个人资料首次创建时运行。操作函数参数:用户 ID。

welcome_panel:允许您在仪表板中隐藏欢迎面板。这也是一个智能过滤器,会隐藏相关的屏幕选项。

wp_ajax_{$action}:以及:wp_ajax_nopriv_{$action} – 用于处理未知类型的 AJAX 请求处理器。

wp_authenticate:在用户登录时验证用户身份。操作函数参数:包含用户名和密码的数组。

wp_login:当用户登录时运行。

wp_logout:当用户登出时运行。

高级操作

本节包含与 WordPress 用于确定显示哪些帖子的查询、WordPress 循环、激活插件以及其他基础级 WordPress 代码相关的操作。

activated_plugin:任何插件成功激活时都会运行

add_meta_boxes:在“编辑帖子”页面加载时运行。(3.0+)

admin_menu:在基本管理面板菜单结构就位后运行。

network_admin_notices:在管理菜单打印到网络管理屏幕后运行。

user_admin_notices:在管理菜单打印到用户管理屏幕后运行。

admin_notices:在管理菜单打印到非网络或用户管理的屏幕后运行。

all_admin_notices:在管理菜单打印到所有屏幕后运行。

blog_privacy_selector:在屏幕上打印默认博客隐私选项后运行。

check_admin_referer:在默认的 check_admin_referrer() 函数中,在出于安全目的检查 nonce 后运行,允许插件强制 WordPress 因额外安全原因而终止。请注意,check_admin_referrer 也是一个“可插拔”函数,意味着插件可以覆盖它;请参阅 插件 API)。

check_ajax_referer:在默认的 check_ajax_referer() 函数中运行(该函数在 AJAX 请求发送到 wp-admin/admin-ajax.php 脚本时被调用),在用户的登录名和密码通过 Cookie 成功验证后,允许插件强制 WordPress 因额外安全原因而终止。请注意,check_ajax_referer 也是一个“可插拔”函数,意味着插件可以覆盖它;请参阅 插件 API)。

customize_controls_enqueue_scripts:在 WP 主题自定义器初始化(调用 customize_controls_init)、其动作/回调执行完毕且其自身的样式和脚本已入队后触发。您可以使用此钩子为 WP 主题自定义器注册自己的脚本和样式。适用于 主题自定义 API(自 版本 3.4 起)。

customize_register:在每个请求上运行,允许开发者注册新的主题选项和控制项以配合 主题自定义 API 使用(自 版本 3.4 起)。

customize_preview_init:允许您仅在主题自定义器中直接入队资源(如 JavaScript 文件)。适用于 主题自定义 API(自 版本 3.4 起)。

deactivated_plugin:任何插件成功停用时会运行

generate_rewrite_rules:在重写规则生成后运行。操作函数参数:按引用传递 WP_Rewrite 对象($wp_rewrite)。请注意,使用 rewrite_rules_array 过滤器比使用此操作更容易来修改重写规则。

init:在 WordPress 完成加载但在发送任何标头之前运行。可用于拦截 $_GET 或 $_POST 触发器。

loop_end:在处理完 WordPress 循环中的最后一篇帖子后运行。

loop_start:在处理 WordPress 循环中的第一篇帖子之前运行。

network_admin_menu:在为 网络 管理页面准备基本菜单结构时运行。(管理菜单)

parse_query:在 主查询 或任何 WP_Query 实例(如 query_posts、get_posts 或 get_children)的查询解析结束时运行。操作函数参数:按引用传递 WP_Query 对象。

parse_request:在主 WordPress 函数 wp 内部解析查询请求后运行。操作函数参数:按引用传递 WP 对象($wp)。

pre_get_posts:在 主查询 或任何 WP_Query 实例(如 query_posts()、get_posts() 或 get_children())执行查询之前运行。此钩子在查询变量对象创建后但在实际运行查询前被调用,可用于在运行前修改主查询。另请参阅 is_main_query()。操作函数参数:按引用传递 WP_Query 对象。

sanitize_comment_cookies:在从 HTTP 请求中读取 Cookie 后运行。

send_headers:在 WordPress 主函数 wp() 内部发送基本 HTTP 头之后运行。动作函数参数:WP 对象($wp)按引用传递。

shutdown:在页面输出完成时运行。

update_{$meta_type}_meta:当元数据被保存时运行。

updated_{$meta_type}_meta:当元数据已被更新时运行。

upgrader_process_complete:当插件下载器/升级器类完成运行时运行。

wp_loaded:此钩子在 WP、所有插件和主题完全加载并实例化后触发一次。

wp:在查询解析且帖子加载后,但在任何模板执行之前,于 WordPress 主函数 wp() 内部执行。如果你需要访问帖子数据但无法使用模板进行输出,此钩子非常有用。动作函数参数:WP 对象($wp)按引用传递。

管理员登录操作

本节包含 WordPress 管理员登录页面用于处理显示、身份验证、注册、重置密码、忘记密码以及其他用户处理的动作。

login_init:在登录表单初始化时触发。

login_form_{$action}:在指定的登录表单动作之前触发。

login_enqueue_scripts:为登录页面加载脚本和样式。

login_head:在脚本加载后,于登录页面头部触发。

login_header:在打开 body 标签后,于登录页面头部触发。

login_form:在登录表单的“密码”字段之后触发。

lostpassword_post:在密码重置请求返回错误之前触发。

admin_email_confirm:在管理员邮箱确认表单之前触发。

admin_email_confirm_form:在管理员邮箱确认表单标签内部、隐藏字段之前触发。

lost_password:在丢失密码表单之前触发。

lostpassword_form:在丢失密码表单标签内部、隐藏字段之前触发。

validate_password_reset:在密码重置程序验证之前触发。

resetpass_form:在用户密码重置表单的“强度指示器”计量条之后触发。

register_form:在用户注册表单的“电子邮件”字段之后触发。

user_request_action_confirmed:当用户确认账户操作时触发动作钩子。

login_footer:在登录页面页脚触发。

延伸阅读