Какой-либо способ использовать пользовательский Параметр для YouTube встраивает, не используя iframe?

Я не хочу отображать заголовки видео, которые я встраиваю в свой сайт Wordpress. Путем я делал, это использует встроить ссылку, вставляя iframe в сообщение Wordpress и добавляя пользовательский Параметр "showinfo=0" в конец URL. Это работало хорошо, пока я не решил изменить дизайн своего сайта. Я должен был использовать некоторую пользовательскую CSS для изменения всех видео (почти 200), что я сделал это к тому, для установки новому дизайну. Если я знал бы о пути только для бросания ссылки в Wordpress (как большинство людей, делают), я не должен был бы использовать iframe, и Wordpress скорректирует размер видео на основе установки, вводимой в раздел медиа.

Я надеюсь, что существует лучший способ встроить видео YouTube, чем способ, которым я делал его (Было бы замечательно просто бросить ссылку в Wordpress вместо того, чтобы иметь необходимость пройти столько различных шагов, чтобы заставить видео обнаруживаться. У кого-либо есть какие-либо идеи, как (того, если это даже возможно) сделать это?

Я отправляю видео каждый день, таким образом, действительно помогло бы моему процессу, если бы был способ сделать это.Спасибо.

`

<?php
load_theme_textdomain('standardtheme', get_template_directory() . '/lang');
$locale = get_locale();
$locale_file = get_template_directory() . '/languages/$locale.php';
if(is_readable($locale_file)):
    require_once($locale_file);
endif;
add_theme_support('post-thumbnails');
require_once('admin/functions.php');
require_once('lib/standardtheme.php');
require_once('lib/pro-photo/pro-photo.php');

function Oembed_youtube_no_title($html,$url,$args){
    $url_string = parse_url($url, PHP_URL_QUERY);
    parse_str($url_string, $id);
    if (isset($id['v'])) {
        return '<iframe width="'.$args['width'].'" height="'.$args['height'].'" src="http://www.youtube.com/embed/'.$id['v'].'?rel=0&showinfo=0" frameborder="0" allowfullscreen></iframe>';
    }
    return $html;
}
add_filter('oembed_result','Oembed_youtube_no_title',10,3);

?>
1
23.02.2012, 18:10
3 ответа

Никакая потребность в плагине, можно просто использовать класс Oembed oembed_result рычаг фильтра

как это:

function Oembed_youtube_no_title($html,$url,$args){
    $url_string = parse_url($url, PHP_URL_QUERY);
    parse_str($url_string, $id);
    if (isset($id['v'])) {
        return '<iframe width="'.$args['width'].'" height="'.$args['height'].'" src="http://www.youtube.com/embed/'.$id['v'].'?rel=0&showinfo=0" frameborder="0" allowfullscreen></iframe>';
    }
    return $html;
}
add_filter('oembed_result','Oembed_youtube_no_title',10,3);

поэтому просто вставьте этот код в functions.php файле своей темы, установите ширину и высоту при настройках>> панель медиа, и необходимо быть очень хорошо с простой вставкой видео URL YouTube в сообщении.

5
19.02.2020, 22:42
  • 1
    Ничего себе, Спасибо! Это является потрясающим! Я должен возвратиться и очистить все свои старые URL вместо того, чтобы сохранить их в iframe, Вы думаете? –  Rick Smith 23.02.2012, 01:31
  • 2
    нет они будут работать, как они, и новые видео просто отбрасывают –  Bainternet 23.02.2012, 03:00
  • 3
    Сценариям нравится, они вызывают дополнительное время загрузки? (например, как использование большего количества плагинов?) –  Rick Smith 23.02.2012, 06:26
  • 4
    Едва ли это - простой фильтр, который работает каждый раз, когда Вы пытаетесь прочитать сообщение впервые, так как Oembed имеет, это - способ иметь дело с кэшированием. –  Bainternet 23.02.2012, 08:39
  • 5
    Хорошо, прохладный. Но это будет хорошо работать с Суперкэшем? –  Rick Smith 23.02.2012, 15:06

Просто захватите URL, добавьте свою строку запроса и позвольте встроенному oEmbed WordPress поддерживать, обрабатывают его.

Это: вытащите URL из кода для встраивания iframe и затем добавьте &showinfo=0 в конец его. Вставьте результат в содержание сообщения на его собственной строке, и вуаля: WordPress встроит видео правильно без отображенного заголовка.

Вот рабочий пример: http://www.youtube.com/v/GrfGGzRNC4U?version=3&hl=en_US&showinfo=0

Я вытянул тот URL из кода для встраивания, не сокращенный URL.

0
19.02.2020, 22:42
  • 1
    Существует ли путь только для использования URL в браузере? –  Rick Smith 23.02.2012, 01:45
  • 2
    я не понимаю Вашего вопроса. –  Chip Bennett 23.02.2012, 01:52
  • 3
    Извините, Вы сказали получение по запросу того URL из кода для встраивания Вы выслеживаете о коде iframe? Если бы Вы просто смотрели видео на YouTube, то Вы могли бы просто скопировать и мимо той ссылки? –  Rick Smith 23.02.2012, 01:59
  • 4
    "Извините, Вы сказали получение по запросу того URL из кода для встраивания Вы выслеживаете о коде iframe?" - Мои точные слова: "Это: вытащите URL из кода для встраивания iframe и затем добавьте &showinfo=0 в конец его. "Так, Да: я говорю о коде для встраивания iframe. –  Chip Bennett 23.02.2012, 02:01
  • 5
    Хорошо, я задаюсь вопросом, можно ли просто включить это к основному URL (который появляется в браузере при смотрении видео.) –  Rick Smith 23.02.2012, 02:05

Отличное решение Bainternet,

Быстрое дополнение к нему, он может быть хорошая идея сначала проверить, что встраиванием является YouTube, встраивают прежде, чем заменить те значения так, чтобы Вы не повреждали другой встраивать типы. Также удобно использовать шаблон WordPress для парсинга споров со значениями по умолчанию. На основе этих двух дополнений вот модифицированная функция (где "пространство имен" является Вашим пространством имен:

/**
 * Add Custom Parameters to YouTube Embeds
 */
function namespace_oembed_youtube_no_title( $html, $url, $args ) {

    // Only run this for YouTube embeds
    if ( !strstr($url, 'youtube.com') )
        return $html;

    // Get embed URL
    $url_string = parse_url($url, PHP_URL_QUERY);
    parse_str($url_string, $id);

    // Set default arguments
    $defaults = array(
        'width' => 480,
        'height' => 385,
        'showinfo' => true,
        'rel' => true
    );

    // Merge args with defaults
    $args = wp_parse_args( $args, $defaults );

    // Define variables
    extract( $args, EXTR_SKIP );

    // Add custom parameter values to IFRAME
    if ( isset($id['v']) ) {
        return '<iframe width="' . intval($width) . '" height="' . intval($height) . '" src="http://www.youtube.com/embed/' . $id['v'] . '?rel=' . intval($rel) . '&showinfo=' . intval($showinfo) . '" frameborder="0" allowfullscreen></iframe>';
    }

    return $html;
}
add_filter('oembed_result', 'namespace_oembed_youtube_no_title', 10, 3);

И теперь для wp_oembed_get() вызов:

// oEmbed Video
$video = wp_oembed_get('http://www.youtube.com/watch?v=mx4xeO3Xq7g', array(
    'width' => 632,
    'height' => 474,
    'showinfo' => false,
    'rel' => false
) );

Еще раз спасибо за добавление этого решения исходное сообщение решило проблему для меня и было действительно полезно.

2
19.02.2020, 22:42

Теги

Похожие вопросы