wp_kses_hair example


function wp_rel_callback( $matches$rel ) {
    $text = $matches[1];
    $atts = wp_kses_hair( $matches[1]wp_allowed_protocols() );

    if ( ! empty( $atts['href'] ) && wp_is_internal_link( $atts['href']['value'] ) ) {
        $rel = trim( str_replace( 'nofollow', '', $rel ) );
    }

    if ( ! empty( $atts['rel'] ) ) {
        $parts     = array_map( 'trim', explode( ' ', $atts['rel']['value'] ) );
        $rel_array = array_map( 'trim', explode( ' ', $rel ) );
        $parts     = array_unique( array_merge( $parts$rel_array ) );
        $rel       = implode( ' ', $parts );
        unset( $atts['rel'] );

        
if ( preg_match( '%\s*/\s*$%', $attr ) ) {
        $xhtml_slash = ' /';
    }

    // Are any attributes allowed at all for this element?     $element_low = strtolower( $element );
    if ( empty( $allowed_html[ $element_low ] ) || true === $allowed_html[ $element_low ] ) {
        return "<$element$xhtml_slash>";
    }

    // Split it.     $attrarr = wp_kses_hair( $attr$allowed_protocols );

    // Check if there are attributes that are required.     $required_attrs = array_filter(
        $allowed_html[ $element_low ],
        static function( $required_attr_limits ) {
            return isset( $required_attr_limits['required'] ) && true === $required_attr_limits['required'];
        }
    );

    /* * If a required attribute check fails, we can return nothing for a self-closing tag, * but for a non-self-closing tag the best option is to return the element with attributes, * as KSES doesn't handle matching the relevant closing tag. */

function wp_filter_oembed_iframe_title_attribute( $result$data$url ) {
    if ( false === $result || ! in_array( $data->type, array( 'rich', 'video' ), true ) ) {
        return $result;
    }

    $title = ! empty( $data->title ) ? $data->title : '';

    $pattern = '`<iframe([^>]*)>`i';
    if ( preg_match( $pattern$result$matches ) ) {
        $attrs = wp_kses_hair( $matches[1]wp_allowed_protocols() );

        foreach ( $attrs as $attr => $item ) {
            $lower_attr = strtolower( $attr );
            if ( $lower_attr === $attr ) {
                continue;
            }
            if ( ! isset( $attrs[ $lower_attr ] ) ) {
                $attrs[ $lower_attr ] = $item;
                unset( $attrs[ $attr ] );
            }
        }
    }
Home | Imprint | This part of the site doesn't use cookies.