sanitize_bookmark()
云策文档标注
概述
sanitize_bookmark() 函数用于清理书签(bookmark)的所有字段,确保数据安全。它接受书签对象或数组作为输入,并可选指定过滤上下文,返回清理后的相同类型数据。
关键要点
- 函数 sanitize_bookmark() 清理书签的多个字段,包括 link_id、link_url、link_name 等。
- 参数 $bookmark 可以是 stdClass 对象或数组,必需;$context 可选,默认为 'display'。
- 返回类型与 $bookmark 相同,但字段已通过 sanitize_bookmark_field() 清理。
- 函数内部处理对象和数组类型,确保兼容性。
- 自 WordPress 2.3.0 版本引入。
代码示例
function sanitize_bookmark( $bookmark, $context = 'display' ) {
$fields = array(
'link_id',
'link_url',
'link_name',
'link_image',
'link_target',
'link_category',
'link_description',
'link_visible',
'link_owner',
'link_rating',
'link_updated',
'link_rel',
'link_notes',
'link_rss',
);
if ( is_object( $bookmark ) ) {
$do_object = true;
$link_id = $bookmark->link_id;
} else {
$do_object = false;
$link_id = $bookmark['link_id'];
}
foreach ( $fields as $field ) {
if ( $do_object ) {
if ( isset( $bookmark->$field ) ) {
$bookmark->$field = sanitize_bookmark_field( $field, $bookmark->$field, $link_id, $context );
}
} else {
if ( isset( $bookmark[ $field ] ) ) {
$bookmark[ $field ] = sanitize_bookmark_field( $field, $bookmark[ $field ], $link_id, $context );
}
}
}
return $bookmark;
}注意事项
- 函数依赖于 sanitize_bookmark_field() 进行具体字段清理。
- 被 WP_Links_List_Table::display_rows()、wp_insert_link() 和 get_bookmark() 等函数使用。
- 确保输入数据格式正确,以避免运行时错误。
原文内容
Sanitizes all bookmark fields.
Parameters
$bookmarkstdClass|arrayrequired-
Bookmark row.
$contextstringoptional-
How to filter the fields. Default
'display'.
Source
function sanitize_bookmark( $bookmark, $context = 'display' ) {
$fields = array(
'link_id',
'link_url',
'link_name',
'link_image',
'link_target',
'link_category',
'link_description',
'link_visible',
'link_owner',
'link_rating',
'link_updated',
'link_rel',
'link_notes',
'link_rss',
);
if ( is_object( $bookmark ) ) {
$do_object = true;
$link_id = $bookmark->link_id;
} else {
$do_object = false;
$link_id = $bookmark['link_id'];
}
foreach ( $fields as $field ) {
if ( $do_object ) {
if ( isset( $bookmark->$field ) ) {
$bookmark->$field = sanitize_bookmark_field( $field, $bookmark->$field, $link_id, $context );
}
} else {
if ( isset( $bookmark[ $field ] ) ) {
$bookmark[ $field ] = sanitize_bookmark_field( $field, $bookmark[ $field ], $link_id, $context );
}
}
}
return $bookmark;
}
Changelog
| Version | Description |
|---|---|
| 2.3.0 | Introduced. |