Intereting Posts
Показывать текущие сообщения пользователя в запросе типа пользовательского сообщения Мой пользовательский запрос отображает случайные сообщения в случайном порядке Можно ли добавить ключ аутентификации для WP REST API в конфигурацию? Опубликовать данные в отдельных div с добавочным классом с помощью WP_Query get_template_part использует константы STRING – как мне ссылаться на post_title как на второй параметр как на строку Что делает WordPress приоритетом, когда дело доходит до php.ini, wp-config и .htaccess? Исключить категорию из fucntion Закажите по названию – но теперь встроенный WordPress func, соберите the_title WordPress multisite htaccess Проблема с отключением канонического 301 перенаправления Перенаправление после обновления пароля пользовательское правило перезаписи htaccess для страницы Каков наилучший способ получить первые несколько сообщений из WordPress в разных div, используя цикл? Как добавить вкладку на страницу параметров ajaxurl не определен на лицевой стороне

Измените размер видео YouTube на одной странице и покажите другой размер на другой странице.

Я должен отобразить на первой странице три видео (пользовательский тип сообщения). При нажатии на ссылку отображается сообщение, а видео должно быть по умолчанию.

Можете ли вы помочь узнать, как изменить ширину видео (например, youtube)?

Вот как я показываю информацию сейчас, и это отображает весь контент (включая видео). Мне нужно как-то показать только the_excerpt + небольшое видео.

 <?php while ( $loop->have_posts() ) : $loop->the_post(); ?> <li> <?php the_title( '<h2 class="entry-title"> <a href="' . get_permalink() . '" title="' . the_title_attribute( 'echo=0' ) . '" rel="bookmark">', '</a></h2>' ); ?> <div class="entry-content"> <?php the_content(); ?> </div> </li> <?php endwhile; ?> 

Solutions Collecting From Web of "Измените размер видео YouTube на одной странице и покажите другой размер на другой странице."

Я предполагаю, что вы используете функцию Embeds WordPress. Вообще говоря, wp_embed_defaults() предоставляет необходимую вам информацию. Взгляд на источник раскрывает ваши возможности:

 2017 /** 2018 * Create default array of embed parameters. 2019 * 2020 * The width defaults to the content width as specified by the theme. If the 2021 * theme does not specify a content width, then 500px is used. 2022 * 2023 * The default height is 1.5 times the width, or 1000px, whichever is smaller. 2024 * 2025 * The 'embed_defaults' filter can be used to adjust either of these values. 2026 * 2027 * @since 2.9.0 2028 * 2029 * @return array Default embed parameters. 2030 */ 2031 function wp_embed_defaults() { 2032 if ( ! empty( $GLOBALS['content_width'] ) ) 2033 $width = (int) $GLOBALS['content_width']; 2034 2035 if ( empty( $width ) ) 2036 $width = 500; 2037 2038 $height = min( ceil( $width * 1.5 ), 1000 ); 2039 2040 /** 2041 * Filter the default array of embed dimensions. 2042 * 2043 * @since 2.9.0 2044 * 2045 * @param int $width Width of the embed in pixels. 2046 * @param int $height Height of the embed in pixels. 2047 */ 2048 return apply_filters( 'embed_defaults', compact( 'width', 'height' ) ); 2049 } 

Поскольку вы можете видеть global переменную $content_width$GLOBALS['content_width'] – это первый подход для определения ширины по умолчанию, если он не пустой, он будет использоваться. Функция темы « Ширина содержимого» можно использовать, добавив следующее к вашим functions.php :

 if ( ! isset( $content_width ) ) { $content_width = 1200; } 

Который устанавливает требуемую ширину. Если вы этого не сделаете, ширина по умолчанию равна 500 пикселей, как вы можете видеть выше. Высота по умолчанию либо в 1,5 раза больше ширины, либо – если это меньше – до 1000 пикселей.

Указанная ширина является максимальной, поэтому ваша вставка не будет более широкой, чем та, но будет уменьшаться по размеру. Вы можете поддерживать это поведение с помощью CSS со следующими параметрами:

 max-width: 100%; height: auto; 

Обычно это рекомендация, но не обязательно необходимая.

Выше, как правило, должно быть достаточно, чтобы масштабировать встроенное содержимое до размера контейнера, в котором они находятся.

Однако внешний вид источника показывает другой способ изменения значения ширины (и высоты). Это будет embed_defaults с embed_defaults фильтра embed_defaults . Более общую информацию об этой функциональности можно найти через WordPress codex page Plugin API , который является хорошим началом для получения дополнительной информации о теме. Конкретный пример использования этой возможности для фильтра embed_defaults выглядит следующим образом:

 add_filter( 'embed_defaults', 'wpse150029_change_embed_defaults' ); function wpse150029_change_embed_defaults() { return array( 'width' => 1200, 'height' => 800 ); } 

Код будет частью вашего functions.php или плагина. Теоретически вы можете использовать условные теги для дифференциации значений, но это маловероятно.

Это должно охватывать возможности настройки ширины встроенного содержимого. Остальное зависит от ваших шаблонов и CSS той темы, которую вы используете.

Поскольку ваша цель состоит в том, чтобы показать the_excerpt() и видео на домашней странице, на передней или обзорной странице, вы должны создать свою собственную функцию для извлечения URL-адреса видео из wp_oembed_get() и использовать wp_oembed_get() для извлечения встроенного HTML. Например, например:

 function wpse150029_fetch_youtube_return_embed_html( $content ) { // Regex example+explanation can be found here: http://regex101.com/r/vZ6bX6/3 // note: the first youtube link will be extracted $pattern = '/(?<=(?:\[embed\])|(?:\[embed\]\s)|(?:))'; $pattern .= '(https?:\/\/)'; $pattern .= '(:?www\.)?'; $pattern .= '(:?youtube\.com\/watch|youtu\.be\/)'; $pattern .= '([\w\?\=\&(amp;)]+)'; $pattern .= '(?=(?:\[\/embed\])|(?:\s\[\/embed\])|(?:))'; $pattern .= '/ims'; preg_match( $pattern, $content, $matches ); $url = $matches[0]; $embed_code = wp_oembed_get( $url ); return $embed_code; } 

Вышеприведенный код входит в ваши functions.php . Примерное использование в вашем шаблоне, как показано ниже:

 $video_loop = new WP_Query( $args ); if ( $video_loop->have_post() ) : while ( $video_loop->have_posts() ) : $video_loop->the_post(); the_title(); the_excerpt(); echo wpse150029_fetch_youtube_return_embed_html( $post->post_content ); endwhile; wp_reset_postdata(); else : endif; 

Подробное описание этого документа WP_Query документации WP_Query .

Если вы действительно хотите иметь миниатюры для встроенных видеороликов, вы должны взглянуть на эти вопросы и ответы здесь:

  • Избранное изображение видео от oembed
  • Настройка отображаемого изображения сообщения из встроенного видео YouTube

Я думаю, что лучшим вариантом будет изменение размера видео с помощью CSS, если у вас есть контейнер .video_index для индекса видео и .video_single для одной видеозаписи, вот пример.

.video_index iframe{ width: 250px; height: 170px; } .video_single iframe{ width: 500px; height: 360px; }

Да, старая история с (O) встраивается и ширина содержимого. Как только появляется репсоны, вся система разваливается. Решение, которое может быть полезным, – это то, что мы делаем в наших темах:

 /** * Change the embed code, so we can apply awesome css shit * Called by filter "oembed_result" * * @author Hendrik Luehrsen * @since 1.0 * * @param $html string The oembed html to edit * * @return string The edited html */ function change_oembed($html, $url, $args){ $video_pattern = "#(\W|^)(youtube|vimeo)(\W|$)#"; if(preg_match($video_pattern, $url)){ $new_html = '<div class="clearfix"></div><div class="oembed-wrapper"><img src="'.WP_THEME_URL.'/img/16x9_placeholder.png" />'.$html.'</div>'; } else { $new_html = $html; } return $new_html; } add_filter( 'oembed_result', array($this, 'change_oembed'), 999, 3 ); 

Немного объяснения: константа WP_THEME_URL – это то, на что она претендует, – URL-адрес темы. 16×9 placeholder.png – прозрачный PNG размером 16 на 9 пикселей. Остальное сделано в CSS / LESS.

 .oembed-wrapper { width: 100%; height: auto; position: relative; margin: 30px 0; img { width: 100%; height: auto; margin: 0 !important; } iframe { position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: 0; width: 100%; height: 100%; } } 

Так что это делает, он всегда масштабирует встроенное видео до 100% контейнера, сохраняя соотношение сторон 16×9. Таким образом, вы можете сбросить все, что захотите.

Я знаю, что есть способы удалить изображение (с псевдоселекторами на .oembed-wrapper), чтобы сохранить пропорции, но я никогда не читал их. Это работает в 99% случаев.