oEmbed – это универсальный формат, созданный для упрощения внедрения содержимого на веб-страницы (аудио, видео, изображения). Разработаны стандарты и механизмы использования этого формата, во многих системах управления сайтами есть плагины и шорткоды, работающие с oEmbed.
Шорткод embed, встроенный в WordPress, служащий для вставки различного медиа-содержимого, имеет очень простые настройки в админке – можно указать автоматическую вставку объектов по ссылке на поддерживаемые ресурсы, ширину и высоту встраиваемых объектов. На всех страницах указанный размер будет одинаковый.
Так же можно задать размеры внедряемых объектов с помощью параметров шорткода. Например:
YouTube
Если на разных страницах вам нужно использовать разную ширину и высоту объектов, вставляемых с помощью oEmbed, то можно использовать шорткод, указывая в нем разные значения ширины и высоты. Однако для продуктивной работы это не очень правильный подход – можно и забыть, где какой размер указывать, да и каждый раз вводить параметры размеров тоже не рационально. Гораздо удобнее было бы определить несколько вариантов для разных страниц, и автоматически использовать их при вставке. Например, на главной странице ширина и высота объектов oEmbed должна быть 320 на 200 точек, на странице категорий – 640 на 480, а на странице поста – 960 на 540 точек. Давайте сделаем так, чтобы при вставке объектов oEmbed вам больше не пришлось каждый раз вводить их высот и ширину.
Для этого откроем файл functions.php, вставим в него:
function tp_oembed_defaults($embed_size) { //ширина и высота объектов oEmbed на главной странице if(is_front_page()) { $embed_size['width'] = 320; $embed_size['height'] = 200; } //ширина и высота объектов oEmbed в любом архиве elseif( is_archive()) { $embed_size['width'] = 520; $embed_size['height'] = 360; } //ширина и высота объектов oEmbed на странице постов определенной категории elseif(is_category()) { $embed_size['width'] = 640; $embed_size['height'] = 480; } //ширина и высота объектов oEmbed на странице постов с определенной меткой elseif(is_tag()) { $embed_size['width'] = 640; $embed_size['height'] = 480; } //ширина и высота объектов oEmbed на странице отдельного поста elseif(is_single()) { $embed_size['width'] = 960; $embed_size['height'] = 540; } //ширина и высота объектов oEmbed на всех остальных страницах else { $embed_size['width'] = 640; $embed_size['height'] = 360; } return $embed_size; } add_filter('embed_defaults', 'tp_oembed_defaults');
Таким образом, используя Conditional Tags, вы, независимо от других настроек блога, можете задать ширину объектов oEmbed на любых страницах, и использовать просто ссылки на них, которые WordPress будет автоматически преобразовывать в аудио/видео/изображения с заданными размерам.