函数文档

add_allowed_options()

💡 云策文档标注

概述

add_allowed_options() 函数用于向允许选项列表中添加一组选项,主要用于 WordPress 设置页面权限管理。它接受新选项数组和可选的目标选项数组参数,并返回更新后的允许选项数组。

关键要点

  • 函数功能:将新选项数组添加到允许选项列表中,确保选项在设置页面中可安全更新。
  • 参数说明:$new_options 为必需参数,指定要添加的选项数组;$options 为可选参数,默认为空字符串,用于指定目标选项数组。
  • 返回值:返回更新后的允许选项数组,可直接用于后续操作或存储。
  • 内部逻辑:通过嵌套循环处理新选项,检查并避免重复添加,维护 $allowed_options 数组的结构。
  • 相关函数:与 option_update_filter() 和 add_option_whitelist() 相关,后者为已弃用函数。
  • 版本历史:自 WordPress 5.5.0 版本引入。

代码示例

function add_allowed_options( $new_options, $options = '' ) {
    if ( '' === $options ) {
        global $allowed_options;
    } else {
        $allowed_options = $options;
    }

    foreach ( $new_options as $page => $keys ) {
        foreach ( $keys as $key ) {
            if ( ! isset( $allowed_options[ $page ] ) || ! is_array( $allowed_options[ $page ] ) ) {
                $allowed_options[ $page ]   = array();
                $allowed_options[ $page ][] = $key;
            } else {
                $pos = array_search( $key, $allowed_options[ $page ], true );
                if ( false === $pos ) {
                    $allowed_options[ $page ][] = $key;
                }
            }
        }
    }

    return $allowed_options;
}

📄 原文内容

Adds an array of options to the list of allowed options.

Parameters

$new_optionsarrayrequired
$optionsstring|arrayrequired

Return

array

Source

function add_allowed_options( $new_options, $options = '' ) {
	if ( '' === $options ) {
		global $allowed_options;
	} else {
		$allowed_options = $options;
	}

	foreach ( $new_options as $page => $keys ) {
		foreach ( $keys as $key ) {
			if ( ! isset( $allowed_options[ $page ] ) || ! is_array( $allowed_options[ $page ] ) ) {
				$allowed_options[ $page ]   = array();
				$allowed_options[ $page ][] = $key;
			} else {
				$pos = array_search( $key, $allowed_options[ $page ], true );
				if ( false === $pos ) {
					$allowed_options[ $page ][] = $key;
				}
			}
		}
	}

	return $allowed_options;
}

Changelog

Version Description
5.5.0 Introduced.