Поддержка Проблемы и решения Вставка миниатюры последнего видео в сайдбар

  • К сожалению, не очень силён в php
    А нужно сделать следующее:
    Имеется категория «видео»
    В записях этой категорий стоит код из youtube и возможно небольшой комментарий.
    Нужно чтобы в сайдбаре отображалась миниатюра последнего видео из записей этой категории и заголовок этой записи.

    вот в принципе и всё.
    Нашёл рецепт тут

    Но проблема в том, что у нас немного переделанный вордпресс. «Произвольных полей» нет. Можно ли как-то решить задачу, которую я описал без произвольных полей.

    Очень благодарен буду за совет.

Просмотр 15 ответов — с 1 по 15 (всего 17)
  • Модератор Yuri

    (@yube)

    В записях этой категорий стоит код из youtube и возможно небольшой комментарий.
    Нужно чтобы в сайдбаре отображалась миниатюра последнего видео из записей этой категории и заголовок этой записи.

    В принципе, получить ютубовскую миниатюру не сложно, но код, который должен вычленять идентификатор ролика, зависит от html-кода, полученного с ютубы и вставленного в запись, а тут возможны разные варианты.

    у нас немного переделанный вордпресс.

    Если так, то где гарантия, что у вас будет работать код для «непеределанного»? Мало ли чего еще в вашем вордпрессе нет. Это серьезное осложнение.

    да нет, просто именно функция произвольных полей удалена, так как задача была максимально облегчить вордпресс, ибо нагрузка на сайт большая. а так всё работает как обычно

    а код с ютуба обычный . такого примерно вида:

    <iframe width=»560″ height=»315″ src=»http://www.youtube.com/embed/ooDkGZPt-t8&#8243; frameborder=»0″ allowfullscreen></iframe>

    Модератор Yuri

    (@yube)

    «Скелетика» хватит? самостоятельно допилите?

    буду благодарен хоть за что-то)))

    если что, спрошу

    Модератор Yuri

    (@yube)

    $ytposts = get_posts('category=123&numberposts=1'); // вместо 123 - id категории
    $ytpost = $ytposts[0];
    if (preg_mtch('|/embed/(.+?)"|', $ytpost->post_content, $yt)) {
       echo "<img src='https://i1.ytimg.com/vi/$yt[1]/mqdefault.jpg'>";
       echo "<h3>$ytpost->post_title</h3>";
    }

    Спасибо.
    Вставил ваш код

    <?php
    $ytposts = get_posts('category=819&numberposts=1'); // вместо 123 - id категории
    $ytpost = $ytposts[0];
    if (preg_mtch('|/embed/(.+?)"|', $ytpost->post_content, $yt)) {
       echo "<img src='https://i1.ytimg.com/vi/$yt[1]/mqdefault.jpg'>";
       echo "<h3>$ytpost->post_title</h3>";
    }
    ?>

    пишет, что Call to undefined function preg_mtch() in

    if (preg_mtch('|/embed/(.+?)"|', $ytpost->post_content, $yt)) {

    Модератор Yuri

    (@yube)

    Ну, букву пропустил в preg_match…

    я так и думал.)) сейчас попробую

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

    Модератор Yuri

    (@yube)

    Плагин PHP Text Widget
    «Текст» в виджете

    <?php
    $ytposts = get_posts('category=1&numberposts=1');
    $ytpost = $ytposts[0];
    if (preg_match('|/embed/(.+?)"|', $ytpost->post_content, $yt)) {
    echo "<img src='https://i1.ytimg.com/vi/$yt[1]/mqdefault.jpg'>";
    echo "<h3>$ytpost->post_title</h3>";
    }
    ?>

    Текст в посте:

    В этом посте имеется ролик с ТыТюбика.
    
    <iframe width="560" height="315" src="http://www.youtube.com/embed/ooDkGZPt-t8" frameborder="0" allowfullscreen></iframe>

    Скриншот: http://s3.itrash.ru/idb/3670/oSnimok_ekrana_ot_2013-02-13_21:48:24.png

    Смотрите, в чем и где Вы промахнулись.

    Плагин PHP Text Widget

    Не очень понял. Я ведь не пользуюсь виджетом, а вставляю прямо в side-left.php

    или дело в том, что я должен что-то изменить в коде?

    Юрий, вам объяснил всё максимально хорошо. Вставляйте кусок этого кода в свой файл и будет вам счастье.

    Модератор Yuri

    (@yube)

    Я ведь не пользуюсь виджетом, а вставляю прямо в side-left.php

    А я не хотел править код темы, поэтому воспользовался плагином и стандартным виджетом. Нет принципиальной разницы в способе вставки кода. Но, возможно, есть непринципиальная. Поэтому я счел нужным указать конфигурацию.

    что я должен что-то изменить в коде?

    Я привел полностью рабочий (как минимум, в одной конфигурации) код. Не имея телепатических способностей, я не могу сказать, почему у Вас он не сработал.

    Модератор Yuri

    (@yube)

    Ладно, к черту телепатию. Будем делать вскрытие.

    Указано category=819.
    Открываем http://allbiathlon.com/?cat=819.
    Видим одну запись Фильм о М. Фуркаде.
    Смотрим внутрь.
    <object width="560" height="315" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/ooDkGZPt-t8?hl=ru_RU&version=3" /><param name="allowfullscreen" value="true" /><embed width="560" height="315" type="application/x-shockwave-flash" src="http://www.youtube.com/v/ooDkGZPt-t8?hl=ru_RU&version=3" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" /></object>

    Я же спрашивал, какой код? Что ВЫ ответили?

    а код с ютуба обычный . такого примерно вида:
    <iframe width="560" height="315" src="http://www.youtube.com/embed/ooDkGZPt-t8" frameborder="0" allowfullscreen></iframe>

    Ну ёмоё.

    Модератор Yuri

    (@yube)

    как задать размер миниатюры

    Как обычно — указать width и/или height. Для совсем маленькой лучше использовать /default.jpg

    сделать её кликабельной со ссылкой на запись-источник?

    echo '<a href="' . get_permalink($ytpost->ID) . '">';
    echo "<img src='https://i1.ytimg.com/vi/$yt[1]/mqdefault.jpg'>";
    echo '</a>';
Просмотр 15 ответов — с 1 по 15 (всего 17)
  • Тема «Вставка миниатюры последнего видео в сайдбар» закрыта для новых ответов.