Advertisements

sanitize_bookmark_field

Definition:
function sanitize_bookmark_field($field, $value, $bookmark_id, $context) {}

Sanitizes a bookmark field
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.

Parameters

  • string $field: The bookmark field
  • mixed $value: The bookmark field value
  • int $bookmark_id: Bookmark ID
  • string $context: How to filter the field value. Either ‘raw’, ‘edit’, ‘attribute’, ‘js’, ‘db’, or ‘display’

Return values

returns:The filtered value

Defined filters

  • edit_$field
    apply_filters("edit_$field", $value, $bookmark_id)
  • pre_$field
    apply_filters("pre_$field", $value)
  • $field
    apply_filters($field, $value, $bookmark_id, $context)

Source code

function sanitize_bookmark_field($field, $value, $bookmark_id, $context) {

	switch ( $field ) {

	case 'link_id' : // ints

	case 'link_rating' :

		$value = (int) $value;

		break;

	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;

		break;

	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) )

			$value = '';

		break;

	}



	if ( 'raw' == $context )

		return $value;



	if ( 'edit' == $context ) {

		$value = apply_filters("edit_$field", $value, $bookmark_id);



		if ( 'link_notes' == $field ) {

			$value = esc_html( $value ); // textarea_escaped

		} else {

			$value = esc_attr($value);

		}

	} else if ( 'db' == $context ) {

		$value = apply_filters("pre_$field", $value);

	} else {

		// Use display filters by default.

		$value = apply_filters($field, $value, $bookmark_id, $context);



		if ( 'attribute' == $context )

			$value = esc_attr($value);

		else if ( 'js' == $context )

			$value = esc_js($value);

	}



	return $value;

}

2761

Advertisements

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: