За последние 24 часа нас посетили 22485 программистов и 1007 роботов. Сейчас ищут 740 программистов ...

Подскажите как вывести заглушку вместо аватарки

Тема в разделе "PHP для новичков", создана пользователем vagoon, 26 сен 2016.

Метки:
  1. vagoon

    vagoon Новичок

    С нами с:
    26 сен 2016
    Сообщения:
    4
    Симпатии:
    0
    Всем доброго времени суток.


    Есть строчка вывода аватарки юзера на страницу:


    PHP:
    1. <img class="box-avatar" src="<?php echo get_the_author_meta( 'rcl_avatar'); ?>" width="400px"><!-- Вывод аватара -->
    Подскажите пожалуйста как вывести заглушку-картинку, если юзер не добавил себе аватарку ? И, соответственно, когда добавит - чтобы выводилась его аватарка, вместо заглушки.

    Ковырялся с функциями if else, что-то не получается..


    Сейчас выводится пустое место размером 400px, или не выводится вообще ничего, не понятно от чего зависит.
     
    #1 vagoon, 26 сен 2016
    Последнее редактирование модератором: 27 сен 2016
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    Телепаты в отпуске, мы не видим что делает get_the_author_meta().

    Есть по крайней мере два решения:
    - поправить функцию, чтобы она проверяла наличие картинки до того, как сформирует <img src=…> и давала ссылку на "заглушку".
    - оставить функцию как есть, но прописать правило rewrite для отсутствующих картинок
     
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    Показывай как ковырялся и иф-элс.
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    WordPress ?
    --- Добавлено ---
    + ещё плагин какой-то, судя по документации get_the_author_meta(), там нету rcl_avatar по умолчанию. http://wp-kama.ru/function/get_the_author_meta
     
  5. vagoon

    vagoon Новичок

    С нами с:
    26 сен 2016
    Сообщения:
    4
    Симпатии:
    0
    Да, такой вариант предпочтительнее наверное.. А можно поподробнее как это сделать?.. Я не силён в кодах..

    Ну что то вроде этого пробовал в нескольких вариациях:

    <?if($_AVATAR$)?>$_AVATAR$<br /><br /><?else?><img class="box-avatar" src="<?php echo get_the_author_meta( 'rcl_avatar'); ?>" width="400px"><?endif?>

    Но в кодах не силён, понимаю что фигня получалась.

    Да, WordPress + плагин Wp-Recall, вытаскиваю аватарку юзера, которую он загрузил себе через Wp-Recall.
    Некоторые юзеры забывают загружать и у меня вёрстка летит из-за этого.
    Хочу вот заглушку какую-ни будь вставить.
     
  6. vagoon

    vagoon Новичок

    С нами с:
    26 сен 2016
    Сообщения:
    4
    Симпатии:
    0
    Ну так как, никто не подскажет?
     
  7. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    Если очень-очень-преочень срочно надо - закажи на фрилансе. Тут как бы форум, на котором никто никому ничем не обязан. И сроками не ограничен. Вчера дискуссия была, потом затихла. Люди занимаются своими делами, спят в конце концов. Позже, может быть, кто-нибудь обратит внимание на твою тему.
     
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Можно попробовать
    PHP:
    1. <img class="box-avatar" src="<?php echo get_the_author_meta( 'rcl_avatar') ? : "/zagluschka.jpg"; ?>" width="400px"><!-- Вывод аватара -->
    Да, zagluschka.jpg заменить на адрес своей картинки, а то тут некоторые, когда им схематичный код даёшь, прямо так его и вставляют :D
     
  9. vagoon

    vagoon Новичок

    С нами с:
    26 сен 2016
    Сообщения:
    4
    Симпатии:
    0
    Спасибо.
    Но нет, ничего не изменилось, не хочет выводить заглушку
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    надо сделать линк на дефолтную аватарку при создании юзера. тогда не придётся ничего проверять и ничего менять.
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    решение уже подсказано: если функция не вернула строку с адресом аватары, используй свою строку.
    не можешь сам — найми того кто может
     
  12. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    А что выводится вместо? Посмотри в исходном коде страницы
     
  13. Device64

    Device64 Новичок

    С нами с:
    29 сен 2016
    Сообщения:
    5
    Симпатии:
    0
    get_user_meta($user_id,'rcl_avatar',1) - может содержать как число (идентификатор изображения аватарки), так и строку (урл до изображения). Как правило содержится число.
    Можно проверить так
    PHP:
    1. $avatar_data = get_user_meta($user_id,'rcl_avatar',1);
    2.  
    3. if($avatar_data){
    4.     $image_attributes = wp_get_attachment_image_src($avatar_data);
    5.     $url = $image_attributes[0];
    6. }else{
    7.     $url = 'тут УРЛ до изображения-заглушки';
    8. }
    9.  
    10. $avatar = "<img class='avatar' src='".$url."' />";