Insert Pages
Insert Pages lets you embed any WordPress content (e.g., pages, posts, custom post types) into other WordPress content using the Shortcode API. It also includes a widget for inserting pages into any widget area. The real power of Insert Pages comes when you start creating custom post types, either programmatically in your theme, or using another plugin like Custom Post Type UI. You can then abstract away common data types (like videos, quizzes, due dates) into their own custom post types, and then show those pieces of content within your normal pages and posts by Inserting them as a shortcode. Advanced Tutorial Contributor Wes Modes has graciously written an updated tutorial for the Gutenberg era, focused on creating a custom post type with custom fields and a custom template for rendering content. Read it here: https://medium.com/@wesmodes/using-wordpress-insert-pages-plugin-with-your-custom-post-types-and-custom-templates-535c141f9635 Example: Normal Use Case Say you teach a course and you’re constantly referring to an assignment due date in your course website. The next semester the due date changes, and you have to go change all of the locations you referred to it. Instead, you’d rather just change the date once! With Insert Pages, you can do the following: Create a custom post type called Due Date. Create a new Due Date called Assignment 1 Due Date with Fri Nov 22, 2013 as its content. Edit all the pages where the due date occurs and use the Insert Pages toolbar button to insert a reference to the Due Date you just created. Be sure to set the Display to Content so Fri Nov 22, 2013 shows wherever you insert it. The shortcode you just created should look something like this: [insert page='assignment-1-due-date' display='content'] That’s it! Now, when you want to change the due date, just edit the Assignment 1 Due Date custom post you created, and it will automatically be updated on all the pages you inserted it on. Example: Advanced Use Case Say your site has a lot of video content, and you want to include video transcripts and video lengths along with the videos wherever you show them. You could just paste the transcripts into the page content under the video, but then you’d have to do this on every page the video showed on. (It’s also just a bad idea, architecturally!) With Insert Pages, you can use a custom post type and create a custom theme template to display your videos+transcripts+lengths just the way you want! Create a custom post type called Video. Use a plugin like Advanced Custom Fields to add extra fields to your new Video custom post type. Add a Video URL field, a Transcript field, and a Video Length field. Create a new Video called My Awesome Video with the following values in its fields: Video URL: http://www.youtube.com/watch?v=oHg5SJYRHA0 Transcript: We’re no strangers to love, You know the rules and so do I… Video Length: 3:34 Create a template in your theme so we can display the video content as we want. I won’t cover this step here since it’s pretty involved, but you can find more help in the WordPress Codex. Let’s assume you created a template called Video with transcript (video-with-transcript.php) that shows the youtube video in a fancybox, and includes a button that shows the text transcript when a user clicks on it. Edit the pages where you want the video to show up and use the Insert Pages toolbar button to insert a reference to the Video you just created. Be sure to set the Display to Use a custom template, and select your new template Video with transcript. The shortcode you just created should look something like this: [insert page='my-awesome-video' display='video-with-transcript.php'] That’s it! Now you can create all sorts of video content and know that it’s being tracked cleanly in the database as its own custom post type, and you can place videos all over your site and not worry about lots of duplicate content. The possibilities are endless!
Top keywords
- video20×2.91%
- custom16×2.33%
- pages12×1.75%
- content11×1.60%
- custom post11×1.60%
- insert11×1.60%
- post11×1.60%
- date10×1.46%
- due10×1.46%
- due date9×1.31%
- custom post type7×1.02%
- post type7×1.02%
WP YouTube Live
Displays the current YouTube live video from a specified channel via the shortcode [youtube_live]. Setup Notes Your YouTube livestream must be set to “Public” or it will not work. This is a security feature of YouTube’s API and unfortunately there’s no way to work around it. In addition, your live stream must be set to allow embedding on third-party sites. If that feature is unavailable, you may need to enable monetization for your account. See YouTube documentation for more information or help with allowing embedding. How It Works If no live video is available, you can display a specified video or a “channel player” showing all your recent videos. You can also enable auto-refresh to automatically check for a live video every 30 seconds (warning: will increase server load, so use with caution). By default, the server will check YouTube’s API and then cache that response for 15 minutes before checking the API again (you may change this value in the admin settings). If auto-refresh is enabled, clients will check against your server every 30 seconds and likely will hit that cache as well, so it can potentially take up to 16 minutes before a client will get a live video. The length of both caches can be changed using the wp_youtube_live_transient_timeout filter (see below for more information). If no live video is available when a page is loaded, several fallback options are available: “Show a custom HTML message” allows you to specify a custom message to show “Show scheduled live videos” will show a player and countdown until your next live video “Show last completed live video” will show your most recently-completed live video “Show recent videos from my channel” will show a playlist of recent videos from your channel “Show a specified playlist” will show a specified playlist “Show a specified video” will show a specified video “Show nothing at all” will show nothing at all When a video ends, users’ browsers will check your server again to see if a live video is available. If so, it will load that; if not, it will fall back as set in your options. Shortcode Options width: player width in pixels; defaults to what you set on the settings page height: player height in pixels; defaults to what you set on the settings page autoplay: whether or not to start playing immediately on load; defaults to false auto_refresh: (either true or false) overrides the auto-refresh setting on the settings page fallback_behavior: choose from the following: upcoming, completed, channel, playlist, video, message, no_message upcoming: the next upcoming scheduled video on the specified channel playlist: a specified playlist (shortcode must also include the fallback_playlist attribute) video: a specified video (shortcode must also include the fallback_video attribute) message: a specified message no_message: nothing at all fallback_playlist: a playlist URL to show when there are no live videos fallback_video: a video URL to show when there are no live videos fallback_message: a message to show when there are no live videos js_only: (either true or false) workaround for some caching issues; if a caching plugin (W3 Total Cache, WP Super Cache, etc.) or proxy (CloudFlare, etc.) caches the HTML while a video is live, visitors may continue to see an old live video even if it has ended. If set js_only is set to true, the server never displays the player code in the initial request and instead sends it in response to uncached ajax requests. This may also result in the video player being slightly delayed on page load due to the extra request, depending on the clients’ bandwidth and latency. Example shortcode: [youtube_live width="720" height="360" autoplay="true"] Filters The filter wp_youtube_live_no_stream_available will customize the message viewers see if there is no live stream currently playing, and takes effect after the fallback_message shortcode attribute is parsed (if fallback_message="no_message" is set in a shortcode, it will override the filter). For example, add this to your theme’s functions.php file: add_filter( 'wp_youtube_live_no_stream_available', 'my_ytl_custom_message' ); function my_ytl_custom_message( $message ) { $message = ' Please check back later or subscribe to our YouTube channel . Check again '; return $message; } The filter wp_youtube_live_transient_timeout is available to customize the cache timeout length in seconds. For example, add this to your theme’s functions.php file to set the cache length to 15 seconds instead of the default 900: add_filter( 'wp_youtube_live_transient_timeout', 'my_ytl_custom_timeout' ); function my_ytl_custom_timeout( $timeout ) { return 15; } Event Listener When a live stream is loaded, the wpYouTubeLiveStarted event is fired; you can use this to create custom front-end features on your site by adding an event listener: window.addEventListener('wpYouTubeLiveStarted', function() { /* your code here */ console.log('stream started'); /* your code here */ }); Development of this plugin is done on GitHub. Pull requests are always welcome.