Front_End::embed_video( string $content )

Post content filter callback to embed the video into the post content.


Description

The method is called on the "post_content" filter and embeds the attached video above or below the post content, depending on the setting from the plugin Settings or the individual post options.


Parameters

$content

(Required) The post content


Return

(string) The post content


Source

File: includes/libs/front-end.class.php

	public function embed_video( $content ){
		if( ! Helper::video_is_visible() ){
			return $content;
		}

		global $post;

		$_post = get_post( $post );

		if( !$_post ){
			return $content;
		}

		// check if post is password protected
		if( post_password_required( $_post ) ){
			return $content;
		}

		// check if filters prevent auto embedding
		if( !Helper::is_autoembed_allowed() ){
			return $content;
		}

		// if video is in skipped auto embed list (has block or the video position shortcode in content), don't embed
		if( $this->skipped_autoembed( $_post ) ){
			return $content;
		}

		$video_post = Helper::get_video_post( $_post );
		$settings = $video_post->get_embed_options();

		if( !in_array( $settings['video_position'], [ 'above-content', 'below-content' ] ) ){
			return $content;
		}

		$video_container = Helper::embed_video( $_post, [], false );

		// put the filter back for other posts; remove in method 'prevent_autoembeds'
		add_filter( 'the_content', [
			$GLOBALS[ 'wp_embed' ],
			'autoembed'
		], 8 );

		/**
		 * Fires before the video embed is placed into the post content.
		 * Action that runs when the video is set to be automatically inserted into the post content.
		 *
		 * @param Video_Post $video_post The \Vimeotheque\Video_Post object generated for the current post in loop.
		 */
		do_action(
			'vimeotheque\automatic_embed_in_content',
			$video_post
		);

		if( 'below-content' === $settings[ 'video_position' ] ){
			return $content . $video_container;
		}else{
			return $video_container . $content;
		}
	}

Start your video site now!

Manage and coordinate your Vimeo channels, albums or videos with your WordPress website. Perfect fit for membership, portfolio, online courses or any type of video collection.

Get Vimeotheque PRO!