HEX
Server: Apache/2.4.38 (Debian)
System: Linux host457 5.14.0-4-amd64 #1 SMP Debian 5.14.16-1 (2021-11-03) x86_64
User: www-data (33)
PHP: 7.4.21
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/vhosts/harpoeditore.it/httpdocs/wp-content/themes/dt-the7/inc/class-the7-embed.php
<?php
/**
 * The7 embed class.
 *
 * @package The7
 */

defined( 'ABSPATH' ) || exit;

/**
 * Class The7_Embed
 */
class The7_Embed {

	/**
	 * @var string
	 */
	protected $src;

	/**
	 * @var int
	 */
	protected $width = 0;

	/**
	 * @var int
	 */
	protected $height = 0;

	/**
	 * The7_Embed constructor.
	 *
	 * @param string $src
	 */
	public function __construct( $src ) {
		$this->src = $src;
	}

	/**
	 * @param string $width
	 */
	public function set_width( $width ) {
		$this->width = (int) $width;
	}

	/**
	 * @param string $height
	 */
	public function set_height( $height ) {
		$this->height = (int) $height;
	}

	/**
	 * Return embed html or false if $wp_embed not set.
	 *
	 * @return bool|string
	 */
	public function get_html() {
		global $wp_embed;

		if ( empty( $wp_embed ) ) {
			return false;
		}

		$embed_atts = array();
		if ( $this->width ) {
			$embed_atts[] = sprintf( 'width="%s"', $this->width );
		}
		if ( $this->height ) {
			$embed_atts[] = sprintf( 'height="%s"', $this->height );
		}

		$embed_shortcode = sprintf( '[embed %1$s]%2$s[/embed]', join( ' ', $embed_atts ), $this->src );

		$this->add_hooks();
		$embed_html = do_shortcode( $wp_embed->run_shortcode( $embed_shortcode ) );
		$this->remove_hooks();

		return $embed_html;
	}

	/**
	 * Filter. Add width attribute to video shortcode.
	 *
	 * @param string $video
	 *
	 * @return string
	 */
	public function _fix_video_file_width_filter( $video ) {
		if ( ! preg_match( '/(width=\"?\d*\"?)/', $video ) ) {
			$video = preg_replace( '/(video)/', sprintf( '$1 width="%s"', $this->width ), $video );
		}

		return $video;
	}

	/**
	 * Add hooks.
	 */
	protected function add_hooks() {
		add_filter( 'wp_embed_handler_video', array( $this, '_fix_video_file_width_filter' ), 10 );
	}

	/**
	 * Remove hooks.
	 */
	protected function remove_hooks() {
		remove_filter( 'wp_embed_handler_video', array( $this, '_fix_video_file_width_filter' ), 10 );
	}
}