Advertisements

safecss_filter_attr

Definition:
function safecss_filter_attr( $css, $deprecated = '' ) {}

Inline CSS filter

Parameters

  • $css
  • $deprecated

Defined filters

  • safe_style_css
    apply_filters( 'safe_style_css', array( 'text-align', 'margin', 'color', 'float',

    'border', 'background', 'background-color', 'border-bottom', 'border-bottom-color',

    'border-bottom-style', 'border-bottom-width', 'border-collapse', 'border-color', 'border-left',

    'border-left-color', 'border-left-style', 'border-left-width', 'border-right', 'border-right-color',

    'border-right-style', 'border-right-width', 'border-spacing', 'border-style', 'border-top',

    'border-top-color', 'border-top-style', 'border-top-width', 'border-width', 'caption-side',

    'clear', 'cursor', 'direction', 'font', 'font-family', 'font-size', 'font-style',

    'font-variant', 'font-weight', 'height', 'letter-spacing', 'line-height', 'margin-bottom',

    'margin-left', 'margin-right', 'margin-top', 'overflow', 'padding', 'padding-bottom',

    'padding-left', 'padding-right', 'padding-top', 'text-decoration', 'text-indent', 'vertical-align',

    'width' )

Source code

function safecss_filter_attr( $css, $deprecated = '' ) {

	if ( !empty( $deprecated ) )

		_deprecated_argument( __FUNCTION__, '2.8.1' ); // Never implemented



	$css = wp_kses_no_null($css);

	$css = str_replace(array("\n","\r","\t"), '', $css);



	if ( preg_match( '%[\\(&=}]|/\*%', $css ) ) // remove any inline css containing \ ( & } = or comments

		return '';



	$css_array = explode( ';', trim( $css ) );

	$allowed_attr = apply_filters( 'safe_style_css', array( 'text-align', 'margin', 'color', 'float',

	'border', 'background', 'background-color', 'border-bottom', 'border-bottom-color',

	'border-bottom-style', 'border-bottom-width', 'border-collapse', 'border-color', 'border-left',

	'border-left-color', 'border-left-style', 'border-left-width', 'border-right', 'border-right-color',

	'border-right-style', 'border-right-width', 'border-spacing', 'border-style', 'border-top',

	'border-top-color', 'border-top-style', 'border-top-width', 'border-width', 'caption-side',

	'clear', 'cursor', 'direction', 'font', 'font-family', 'font-size', 'font-style',

	'font-variant', 'font-weight', 'height', 'letter-spacing', 'line-height', 'margin-bottom',

	'margin-left', 'margin-right', 'margin-top', 'overflow', 'padding', 'padding-bottom',

	'padding-left', 'padding-right', 'padding-top', 'text-decoration', 'text-indent', 'vertical-align',

	'width' ) );



	if ( empty($allowed_attr) )

		return $css;



	$css = '';

	foreach ( $css_array as $css_item ) {

		if ( $css_item == '' )

			continue;

		$css_item = trim( $css_item );

		$found = false;

		if ( strpos( $css_item, ':' ) === false ) {

			$found = true;

		} else {

			$parts = split( ':', $css_item );

			if ( in_array( trim( $parts[0] ), $allowed_attr ) )

				$found = true;

		}

		if ( $found ) {

			if( $css != '' )

				$css .= ';';

			$css .= $css_item;

		}

	}



	return $css;

}

2757

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: