WordPress maintenance or security needs? Reach out!
TLDWP

Plugin: wp-theater (Used by 5 domains)

Security snapshot

Across the 5 wp-theater sites we've scanned, compared to the all-WordPress average.

Grade A 0% Grade B 0% Grade C 0% Grade D 20% Grade F 80%
Fail the header check (F)80%vs 82.5% avg
Leak usernames60%vs 38.5% avg
Expose a sensitive file0%vs 1.8% avg
Use HTTPS100%vs 96.2% avg

WP Theater

WP Theater provides shortcodes for integrating YouTube and Vimeo video embeds and feeds into your posts or widgets. Some options include traditional embedding, single video previews, a wrapped “Theater” embed, and video listings from playlists, channels, albums and groups. WP Theater was built with developers in mind, those who need flexibility. With that said, great effort was put into making sure this plugin stayed simple.

Requirements

  1. Current version tested on WordPress version 3.9 and later.
  2. PHP 5.3 or later with cURL

Usage

For parameters and their usage please visit:

http://redshiftstudio.com/wp-theater/

Boring Embed – The classic



Preview – Thumbnail and title of a single video



Theater – Traditional embed that’s wrapped for styling, has optional Lower Lights and Full Window buttons, and is responsive.



The following contain a “theater” by default

User – Listing of a user’s videos



// for YouTube's v3 API see FAQ about user uploads vs playlists.

Channel – Listing of videos from a specific channel


Playlist – Listing of videos from a user’s playlist


Album – Listing of videos from a specific album


Group – Listing of videos from a specific group


Developer FAQ

How can I customize the output

Filters exist that can handle complete customization of the output. Written as “Filter_Hook” ($callback_params … )

Display — Override built in output

  • “wp_theater-pre_video_shortcode” ( FALSE, $feed, $atts )
  • “wp_theater-pre_theater” ( FALSE, $atts, $content, $tag )
  • “wp_theater-pre_video_preview” ( FALSE, $video, $atts, $selected )

Attributes

  • “wp_theater-format_params” ( $atts, $content, $tag )

API Feeds — Override built in api request and parsing. NOTE: Keep in mind that these filters will only be called when the transient cache is updated.

  • “wp_theater-pre_get_request_url” ( FALSE, $atts, $request, $output )
  • “wp_theater-parse_{$service}_response” ( $out, $response, $atts) // v1.1.3

Content

  • “wp_theater-section_title” ( $title )
  • “wp_theater-video_title” ( $title )
  • “wp_theater-{$service}_more_url” ( FALSE, $atts, $data ) // v1.1.4

Presets

  • “wp_theater-get_preset” ( $name )
  • “wp_theater-set_preset” ( $arr, $name )

How do I add my own preset?

The following code will create a preset named “my_preset”. We do not currently, but are planning to, offer a method of saving presets to the database so that they stick around between theme’s.

function my_preset_init ($presets) {
    $presets->set_preset( 'my_preset', shortcode_atts( $presets->get_preset( 'youtube' ), array(
        'embed_width' => 342,
        'embed_height' => 192,
        'max' => 9,
    ) ) );
    add_shortcode( 'my_preset', array( WP_Theater::$shortcodes, 'video_shortcode' ) );
}
add_action('wp_theater-shortcodes_init', 'my_preset_init');

What values can I define in presets

Listed below are all of the possible settings you can define in a preset with their base values

array(
    // general options
    'preset' => '',
    'service' => '',
    'mode' => 'embed',
    'id' => '',
    'embed_width' => FALSE,
    'embed_height' => FALSE,
    'class' => '',
    'cache' => FALSE,

    // preview & listing options
    'img_size' => 'medium',
    'columns' => 3,
    'max' => 12,
    'autoplay_onclick' => TRUE,

    // Title options
    'show_title' => TRUE,
    'show_video_title' => TRUE,
    'title' => '',

    // More link options
    'show_more_link' => TRUE,
    'more_url' => FALSE,
    'more_text' => FALSE,

    // Theater options
    'show_theater' => TRUE,
    'theater_id' => FALSE,
    'show_fullwindow' => FALSE,
    'show_lowerlights' => FALSE,
    'keep_ratio' => TRUE,
    'iframe_placeholder' = > TRUE            // since 1.2.0

    // can only be defined in presets
    'modes' => array(), // the modes array with matching link formats
    'classes' => array( // the classes to apply to their respective elements
        'section' => 'entry-section wp-theater-section %service%',
        'theater' => 'wp-theater-bigscreen',
        'embed' => 'wp-theater-iframe',
        'list' => 'wp-theater-listing',
        'preview' => 'video-preview'
    )
);

How can I modify the embed url?

Each preset requires a modes array to store the different link formats used. You can directly access and modify these yourself through a theme’s functions.php.
e.g.

// make youtube embed with https and youtube-nocookie.com
function my_preset_init ($presets) {
    $youtube_preset = $presets->get_preset( 'youtube' );
    $youtube_preset['modes']['embed'] = 'https://www.youtube-nocookie.com/embed/%id%?wmode=transparent&autohide=1';
    $presets->set_preset( 'youtube', $youtube_preset );
}
add_action('wp_theater-shortcodes_init', 'my_preset_init');

NOTE: Each mode URL must have %id% in the place of the id. And, it’s a bit dumb but, for now you must include at least one query parameter in an embed’s url.

What do the formatted feeds look like?

Vimeo’s feed will return exactly what their API states except we merge their info and video requests into one and clone values to help normalize the feeds. Youtube on the other hand is almost completely reformatted into a format based on Vimeo’s

You can count on the full feeds returning the following content with an exception being that single preview feeds do not have the feed title or url.

Also, with YouTube’s v3 API enabled, rating, likeCount and viewCount will always be empty strings since you must use OAuth2 and be a verified content owner:

object
    'title' => string
    'url' => string
    'videos' => array
        0 => object
            'title' => string
            'id' => string
            'url' => string
            'upload_date' => string
            'description' => string
            'category' => string
            'duration' => string
            'rating' => string
            'likeCount' => string
            'viewCount' => string
            'width' => string
            'height' => string
            'thumbnails' => array
                'small' => string
                'medium' => string
                'large' => string
                'cover' => string       // since 1.2.0 -- set to the largest available image.
Domain Exposures Headers Last Checked
j*m*i*a.c*.uk F Sep 7, 2026
e*t*r*r*o*l*.com F Aug 30, 2026
f*d*l*.com (WP 5.1.24) D Aug 30, 2026
s*r*t*s.com (WP 7.0.4) F Aug 16, 2026
a*i*t*c*a*o*l*n*s*o*.com F Jul 22, 2026

Top 50 Plugins

Plugin Count
elementor 1,718,857
contact-form-7 1,715,107
elementor-pro 1,024,535
woocommerce 794,067
revslider 589,808
jetpack 421,101
js_composer 406,493
wp-rocket 323,311
essential-addons-for-elementor-lite 255,642
google-site-kit 255,241
gravityforms 251,714
complianz-gdpr 251,192
cookie-law-info 222,410
instagram-feed 218,806
sitepress-multilingual-cms 206,037
header-footer-elementor 198,827
google-analytics-for-wordpress 197,771
bluehost-wordpress-plugin 188,879
elementskit-lite 172,624
gutenberg 150,469
litespeed-cache 144,963
cookie-notice 143,896
gutenberg-core 128,828
gtranslate 120,251
the-events-calendar 119,698
wpforms-lite 117,426
astra-sites 107,638
popup-maker 106,357
woocommerce-payments 103,866
tablepress 101,449
honeypot 96,124
astra-addon 90,946
duracelltomi-google-tag-manager 87,998
coblocks 87,870
wp-smushit 87,755
layerslider 86,142
all-in-one-seo-pack 85,727
bb-plugin 84,499
ml-slider 82,011
akismet 81,090
premium-addons-for-elementor 79,979
cleantalk-spam-protect 79,874
megamenu 78,502
mailchimp-for-wp 78,318
ewww-image-optimizer 76,691
wp-pagenavi 76,438
jet-engine 76,202
fusion-builder 75,147
smart-slider-3 74,018
gravityformsrecaptcha 72,727

Top 50 Themes

Theme Count
hello-elementor 606,212
Divi 480,849
astra 399,444
flatsome 146,324
Avada 117,981
generatepress 111,785
pub 89,179
oceanwp 77,588
kadence 77,330
enfold 66,672
salient 63,159
twentyseventeen 52,714
bb-theme 51,571
twentytwentyfour 51,303
betheme 51,267
cocoon-master 49,806
blocksy 49,401
twentytwentyfive 45,981
woodmart 44,867
h4 44,842
dt-the7 44,323
neve 36,868
Avada-Child-Theme 36,372
gox 35,833
lightning 30,826
bridge 30,214
twentytwentyone 29,209
swell 29,170
twentytwenty 27,859
bricks 26,832
Impreza 25,422
Newspaper 23,501
twentytwentythree 21,153
epik-redesign 18,814
twentytwentytwo 18,020
uncode 17,966
twentysixteen 17,180
pro 17,085
sydney 15,694
storefront 15,589
Total 14,039
factory-templates-4 13,905
hello-theme-child-master 13,540
themify-ultra 13,177
hestia 12,243
yootheme 12,232
yith-wonder 11,662
jupiter 11,553
twentyfifteen 11,520
porto 11,507