函数文档

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.