Как показать видео в отрывке

На эту тему есть немало странных решений. Похоже, авторы просто не разобрались, как и когда работает шорткод [embed]. Вот простой код, который можно включить в functions.php.

/**
 * Allows to show video in excerpt.
 *
 * @param string $post_excerpt
 *
 * @return string
 */
function get_the_excerpt_filter( $post_excerpt ) {
	$pos = mb_strpos( $post_excerpt, '' );
	if ( false !== $pos ) {
		/** @var WP_Embed $wp_embed */
		$wp_embed     = $GLOBALS['wp_embed'];
		$post_excerpt = $wp_embed->run_shortcode( $post_excerpt );
	}

	return $post_excerpt;
}

add_filter( 'get_the_excerpt', 'get_the_excerpt_filter' );

Код корректно отрабатывает наличие шорткода вида [embed]https://www.youtube.com/watch?v=ouiHvUCI_pw[/embed] в тексте отрывка и выводит видео.

Источник: KAGG Design

Игорь Гергель

Единственный обладатель значков золотой WordPress и бронзовый WooCommerce на StackOverflow RU. WordPress Core contributor. Работал ведущим девелопером в команде WPML.

%d такие блоггеры, как: