sanitize_bookmark_field() WordPress Function
The sanitize_bookmark_field() function is used to sanitize a string for use in a bookmark field. It is used to ensure that the string is safe to use in a bookmark field.
sanitize_bookmark_field( string $field, mixed $value, int $bookmark_id, string $context ) #
Sanitizes a bookmark field.
Description
Sanitizes the bookmark fields based on what the field name is. If the field has a strict value set, then it will be tested for that, else a more generic filtering is applied. After the more strict filter is applied, if the $context
is ‘raw’ then the value is immediately return.
Hooks exist for the more generic cases. With the ‘edit’ context, the ‘edit_$field’ filter will be called and passed the $value
and $bookmark_id
respectively.
With the ‘db’ context, the ‘pre_$field’ filter is called and passed the value. The ‘display’ context is the final context and has the $field
has the filter name and is passed the $value
, $bookmark_id
, and $context
, respectively.
Parameters
- $field
(string)(Required)The bookmark field.
- $value
(mixed)(Required)The bookmark field value.
- $bookmark_id
(int)(Required)Bookmark ID.
- $context
(string)(Required)How to filter the field value. Accepts 'raw', 'edit', 'db', 'display', 'attribute', or 'js'. Default 'display'.
Return
(mixed) The filtered value.
Source
File: wp-includes/bookmark.php
function sanitize_bookmark_field( $field, $value, $bookmark_id, $context ) { $int_fields = array( 'link_id', 'link_rating' ); if ( in_array( $field, $int_fields, true ) ) { $value = (int) $value; } switch ( $field ) { case 'link_category': // array( ints ) $value = array_map( 'absint', (array) $value ); // We return here so that the categories aren't filtered. // The 'link_category' filter is for the name of a link category, not an array of a link's link categories. return $value; case 'link_visible': // bool stored as Y|N $value = preg_replace( '/[^YNyn]/', '', $value ); break; case 'link_target': // "enum" $targets = array( '_top', '_blank' ); if ( ! in_array( $value, $targets, true ) ) { $value = ''; } break; } if ( 'raw' === $context ) { return $value; } if ( 'edit' === $context ) { /** This filter is documented in wp-includes/post.php */ $value = apply_filters( "edit_{$field}", $value, $bookmark_id ); if ( 'link_notes' === $field ) { $value = esc_html( $value ); // textarea_escaped } else { $value = esc_attr( $value ); } } elseif ( 'db' === $context ) { /** This filter is documented in wp-includes/post.php */ $value = apply_filters( "pre_{$field}", $value ); } else { /** This filter is documented in wp-includes/post.php */ $value = apply_filters( "{$field}", $value, $bookmark_id, $context ); if ( 'attribute' === $context ) { $value = esc_attr( $value ); } elseif ( 'js' === $context ) { $value = esc_js( $value ); } } // Restore the type for integer fields after esc_attr(). if ( in_array( $field, $int_fields, true ) ) { $value = (int) $value; } return $value; }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
2.3.0 | Introduced. |