Вопрос или проблема
Я хочу добавить видео с youtube/vimeo в мой пост. Каждый раз, когда я добавляю видео в свой пост, в админке (Добавить новый пост) будет отображаться ссылка, такая как https://www.youtube.com/watch?v=dsUXAEzaC3Q, а на фронтенде будет отображаться само видео. Но проблема в том, что я хочу показать видео в формате шорткода вместо оригинального видео. То есть показывать шорткод, как выше, вместо видео на фронтенде. Как это возможно? Пожалуйста, помогите мне.
Добавьте следующий код в конце файла functions.php
, и вам нужно будет заменить встроенный шорткод.
function video_shortcode($atts) {
// Извлечь URL из атрибутов шорткода
$url = isset($atts['url']) ? esc_url($atts['url']) : '';
// Проверить, предоставлен ли действительный URL
if ($url) {
// Извлечь ID видео из URL YouTube
$video_id = '';
parse_str(parse_url($url, PHP_URL_QUERY), $query_params);
if (isset($query_params['v'])) {
$video_id = $query_params['v'];
}
// Если ID видео найден, сгенерировать код iframe для встраивания видео YouTube
if ($video_id) {
$iframe_code="<iframe width="560" height="315" src="https://www.youtube.com/embed/" . $video_id . '" frameborder="0" allowfullscreen></iframe>';
return $iframe_code;
}
}
// Если действительный URL не предоставлен, вернуть пустую строку
return '';
}
add_shortcode('custom_video', 'video_shortcode');
Чтобы отобразить вывод шорткода с кликабельной ссылкой, при этом все еще выглядя как шорткод, вам нужно заменить встроенный шорткод:
add_shortcode( 'video', 'wpse_96840_literal_video' );
function wpse_96840_literal_video( $atts )
{
$url = $atts['url'];
return '<code>'
. sprintf( '', $url )
. '</code>';
}
Результат
Ответ или решение
Как заменить стандартный URL видео в посте на формат шорткода
В данной инструкции мы рассмотрим, как изменить отображение видео в посте, чтобы вместо стандартного URL (например, ссылка на видео с YouTube или Vimeo) в административной панели отображался шорткод, а на фронтенде возникала возможность отображения видео в формате шорткода. Это может быть полезно для улучшения читаемости кода и организации контента.
Шаг 1: Добавление функции для шорткода
Первым делом нужно добавить необходимый код в файл functions.php
вашей темы. Этот код позволяет использовать пользовательский шорткод для видео, при этом он будет отображаться в формате шорткода, а не как встроенное видео.
Вот код для добавления в functions.php
:
function video_shortcode($atts) {
// Извлекаем URL из параметров шорткода
$url = isset($atts['url']) ? esc_url($atts['url']) : '';
// Проверяем, предоставлен ли действительный URL
if ($url) {
// Извлекаем ID видео из URL YouTube
$video_id = '';
parse_str(parse_url($url, PHP_URL_QUERY), $query_params);
if (isset($query_params['v'])) {
$video_id = $query_params['v'];
}
// Если найден ID видео, создаем код для встраивания видео YouTube
if ($video_id) {
$iframe_code = '<iframe width="560" height="315" src="https://www.youtube.com/embed/' . $video_id . '" frameborder="0" allowfullscreen></iframe>';
return $iframe_code;
}
}
// Если URL не действителен, возвращаем пустую строку
return '';
}
add_shortcode('custom_video', 'video_shortcode');
Шаг 2: Создание шорткода для отображения ссылки
Чтобы ваш шорткод мог отображать видео как ссылку на него в формате шорткода, добавьте следующий код:
add_shortcode('video', 'wpse_96840_literal_video');
function wpse_96840_literal_video($atts) {
$url = $atts['url'];
return '<code>'
. sprintf('', $url)
. '</code>';
}
Применение
Теперь, когда вы будете добавлять видео в свой пост, вы сможете использовать шорткод [custom_video url="вставьте_ваш_url_видео"]
. На фронтенде ссылки будут заменяться на вид шорткода.
Результат
После выполнения всех шагов у вас будет возможность использовать шорткоды в ваших постах для видео, что упростит работу по управлению контентом:
- Вместо прямых ссылок на видео пользователи будут видеть чистый шорткод.
- Более легкое управление контентом и его отображением.
Заключение
Эти изменения могут значительно улучшить пользовательский опыт при работе с видео-контентом в вашей системе управления контентом. Применяя приведенный выше код, вы сможете создать более организованный и читабельный интерфейс для ваших постов.
Обязательно протестируйте новую функциональность на локальном сервере или тестовой версии вашего сайта перед развертыванием на рабочем ресурсе.