wp_ajax_hidden_columns()
云策文档标注
概述
wp_ajax_hidden_columns() 是一个 WordPress AJAX 处理函数,用于管理用户界面中的隐藏列。它通过 AJAX 请求接收隐藏列数据,并更新用户元数据以保存这些设置。
关键要点
- 函数通过 AJAX 处理隐藏列的更新,确保数据安全性和用户身份验证。
- 使用 check_ajax_referer() 验证 AJAX 请求,防止外部攻击。
- 通过 sanitize_key() 清理页面参数,确保数据安全。
- 使用 wp_get_current_user() 获取当前用户对象,并更新用户元数据 update_user_meta() 以保存隐藏列设置。
- 函数在成功或失败时调用 wp_die() 终止执行并返回响应。
代码示例
function wp_ajax_hidden_columns() {
check_ajax_referer( 'screen-options-nonce', 'screenoptionnonce' );
$page = isset( $_POST['page'] ) ? $_POST['page'] : '';
if ( sanitize_key( $page ) !== $page ) {
wp_die( 0 );
}
$user = wp_get_current_user();
if ( ! $user ) {
wp_die( -1 );
}
$hidden = ! empty( $_POST['hidden'] ) ? explode( ',', $_POST['hidden'] ) : array();
update_user_meta( $user->ID, "manage{$page}columnshidden", $hidden );
wp_die( 1 );
}注意事项
- 此函数依赖于 AJAX 请求,需确保前端正确发送 POST 数据,包括 'page' 和 'hidden' 参数。
- 隐藏列数据以逗号分隔的字符串形式传递,函数内部使用 explode() 转换为数组。
- 用户元数据键为 "manage{$page}columnshidden",其中 $page 是清理后的页面标识符。
- 函数在 WordPress 3.1.0 版本引入,使用时需注意版本兼容性。
原文内容
Handles hidden columns via AJAX.
Source
function wp_ajax_hidden_columns() {
check_ajax_referer( 'screen-options-nonce', 'screenoptionnonce' );
$page = isset( $_POST['page'] ) ? $_POST['page'] : '';
if ( sanitize_key( $page ) !== $page ) {
wp_die( 0 );
}
$user = wp_get_current_user();
if ( ! $user ) {
wp_die( -1 );
}
$hidden = ! empty( $_POST['hidden'] ) ? explode( ',', $_POST['hidden'] ) : array();
update_user_meta( $user->ID, "manage{$page}columnshidden", $hidden );
wp_die( 1 );
}
Changelog
| Version | Description |
|---|---|
| 3.1.0 | Introduced. |