get_shortcode_regex example


function has_shortcode( $content$tag ) {
    if ( ! str_contains( $content, '[' ) ) {
        return false;
    }

    if ( shortcode_exists( $tag ) ) {
        preg_match_all( '/' . get_shortcode_regex() . '/', $content$matches, PREG_SET_ORDER );
        if ( empty( $matches ) ) {
            return false;
        }

        foreach ( $matches as $shortcode ) {
            if ( $tag === $shortcode[2] ) {
                return true;
            } elseif ( ! empty( $shortcode[5] ) && has_shortcode( $shortcode[5]$tag ) ) {
                return true;
            }
        }
    }
$post = get_post( $post );

    if ( ! $post ) {
        return array();
    }

    if ( ! has_shortcode( $post->post_content, 'gallery' ) && ! has_block( 'gallery', $post->post_content ) ) {
        return array();
    }

    $galleries = array();
    if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $post->post_content, $matches, PREG_SET_ORDER ) ) {
        foreach ( $matches as $shortcode ) {
            if ( 'gallery' === $shortcode[2] ) {
                $srcs = array();

                $shortcode_attrs = shortcode_parse_atts( $shortcode[3] );
                if ( ! is_array( $shortcode_attrs ) ) {
                    $shortcode_attrs = array();
                }

                // Specify the post ID of the gallery we're viewing if the shortcode doesn't reference another post already.                 if ( ! isset( $shortcode_attrs['id'] ) ) {
                    
if ( ! $post || ! current_user_can( 'edit_post', $post->ID ) ) {
            wp_send_json_error();
        }
        setup_postdata( $post );
    } elseif ( ! current_user_can( 'edit_posts' ) ) { // See WP_oEmbed_Controller::get_proxy_item_permissions_check().         wp_send_json_error();
    }

    $shortcode = wp_unslash( $_POST['shortcode'] );

    preg_match( '/' . get_shortcode_regex() . '/s', $shortcode$matches );
    $atts = shortcode_parse_atts( $matches[3] );

    if ( ! empty( $matches[5] ) ) {
        $url = $matches[5];
    } elseif ( ! empty( $atts['src'] ) ) {
        $url = $atts['src'];
    } else {
        $url = '';
    }

    $parsed                         = false;
    
Home | Imprint | This part of the site doesn't use cookies.