Домой Wp-Recall WP-Recall: Проблемы и решения В Telegram при копировании ссылки не открывается изображение в twitter:image при использовании функций.
29ответ(ов) в теме
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
1
12:59
Версия WP-Recall: 16

Вообщем уже весь мозг сломал. Тот вариант когда все элементарно и должно работать - но не работает.

В header.php прописываю и вывожу через
echo do_shortcode( '[first-foto_tw]' ),
тут нельзя вставить полностью.

В functions.php прописываю:

function first_foto_tww() {
 
// 1 получение ссылки через функцию
global $user_LK;
$ImgTL = get_user_meta($user_LK, 'f_001_jb', 1);
$image_url = wp_get_attachment_url( $ImgTL );
echo $image_url;


//  2 присвоение ссылки вручную
// $image_url_2 = '/wp-content/uploads/2021/03/photo1_2977.jpg';
// echo $image_url_2;

}
add_shortcode('first-foto_tw', 'first_foto_tww');

В итоге в коде страницы ссылку выводит одинаково, как через функцию, так и в ручную. Но телега получает картинку только когда присваиваешь вручную. Только получаешь через get_user_meta и wp_get_attachment_url - ВСЕ изображения нет.
Но самое интересное, что тот же вайбер все открывает. У одной телеги проблемы. Что это может быть?

0
garry
не в сети 15 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2925
2
13:49

А "og:image" не работает?

1
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
3
14:30

Не работает. Перепробовал. Даже переменную с ссылкой в строковое значение переводил. Только использую get_user_meta и wp_get_attachment_url - все.

0
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
4
15:26

Собака зарыта именно в Wp-Recall. Добавил через функции

echo esc_url( wp_get_attachment_image_src( get_theme_mod( 'custom_logo' ), 'full' )[0] )

логотип темы - все видит.

0
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
5
15:37

global $user_LK;
echo wp_get_attachment_url(get_user_meta($user_LK, 'f_001_jb', 1));

Не видит, хоть ссылка есть в коде. Я так понял проблема зарыта в global $user_LK??? Кто подскажет откуда такое "чудо дивное и диво чудное"? Где я туплю? ((

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
6
20:18

видимо вы пытаетесь использовать $user_LK еще до того, как она будет определена, попробуйте ее распечатать на экран, что выведет?

1
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
7
20:33

Андрей CS сказал(а)
видимо вы пытаетесь использовать $user_LK еще до того, как она будет определена, попробуйте ее распечатать на экран, что выведет?

Вывести через var_dump - $user_LK при загрузке страницы?

echo var_dump($user_LK);

Просто шордкод прописан в header.php meta - name="og:image" content="" и на момент загрузки страницы ссылка на изображение выводиться, но в какой момент это все хочет получить телеграмм, при копировании в него ссылки это уже вопрос.

0
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
8
20:38

function first_foto_tww() {
 
// //  1 получение ссылки через функцию
global $user_LK;

// $ImgTL = get_user_meta($user_LK, 'f_001_jb', 1);
// $image_url = wp_get_attachment_url( $ImgTL );
// echo $image_url;


// echo wp_get_attachment_url(get_user_meta($user_LK, 'f_001_jb', 1));

     echo var_dump($user_LK);

//  1 присвоение ссылки вручную
// $image_url_2 = '/wp-content/uploads/2021/03/photo1_2977.jpg';
// echo $image_url_2;

}

add_shortcode('first-foto_tw', 'first_foto_tww');

Выводит int(54). То есть id пользователя.

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
9
21:20

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

get_user_meta($user_LK, 'f_001_jb', 1)

1
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
10
22:03

Причина ИМЕННО в переменой $user_LK. Код пройден 100500 раз, да и что там проходить одна строчка.
Вот два примера.

function first_foto_tww() {
global $user_LK;
echo wp_get_attachment_url(get_user_meta($user_LK, 'f_001_jb', 1));
}
add_shortcode('first-foto_tw', 'first_foto_tww');

Нет изображения.

Заменяем глобалку $user_LK на обычную переменную и присваиваем ей id существующего пользователя.

function first_foto_tww() {
$user_IDT = 45;
echo wp_get_attachment_url(get_user_meta($user_IDT, 'f_001_jb', 1));
}
add_shortcode('first-foto_tw', 'first_foto_tww');

Все работает.

Дело именно в $user_LK и скорее всего в том что телеграмм при получении данных с сайта пытается взять изображение до "определения" "init" и т.д.

Есть ли возможность получить ID пользователя страницы хотя бы штатными WP средствами из базы данных, не через $user_LK если она не работает адекватно с телегой?

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
11
16:41

ну я же не знаю где вы пытаетесь использовать этот код, значит $user_LK не определена у вас, используйте код там где эта переменная будет определена

1
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
12
19:42

Как это не знаете? В header.php Внутри тега head, meta name="og:image" и "twitter:image" прописываются, как бы, только в единственном месте. Все указано в первом посте.
Если есть глюки и не доработки самого плагина в работе с телеграмом, не вопрос. Я понимаю. Плагин не стоит больших денег, случай специфический, а на поддержке как было написано раннее, на этом ресурсе, слегка так забивают. Сейчас у всех проблемы. Но так откровенно "я не я и лошадь не моя"... Хоть в какую сторону копать направили бы или платное решение?...

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
13
21:17

Вы не нервничайте, разработка любит вдумчивых.
Если после вашей проверки вы обнаружили, что переменная $user_LK определена, то я не вижу причин со стороны плагина для возникновения проблем.
Есть проблемы в вашем коде.
Контент из шорткода должен возвращаться через return, а не через echo.
Надеюсь это вам поможет.
Кроме того, раз вы пытаетесь формировать контент для вывода в хедере сайта, то вы всегда можете увидеть результат в исходном коде страницы, как я понял, туда вы еще не смотрели.

1
василий
не в сети 2 часа
На сайте с 20.03.2013
Участник
Тем 24
Сообщения 169
14
07:27

Здравствуйте. Кроме всего прочего обратите внимание что данная переменная возвращает id пользователя только на странице ЛК. Может быть вы используете её в другом месте?

1
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
15
10:03

Андрей CS сказал(а)
то вы всегда можете увидеть результат в исходном коде страницы, как я понял, туда вы еще не смотрели.

Так в том то и "загадка", конечно смотрел. Код правильно отображается при нажатии на "просмотр кода страницы". Проблема в том, что он всегда одинаково отображается ПРАВИЛЬНО как при ручном присвоении Id пользователя, что при $user_LK. Но телега видит только ручное присвоении Id. Почему я и посматриваю на init.
Поменял "echo" на "return" - нечего не поменялось.
И вся проблема именно в телеге. Тот же вайбер с $user_LK работает без проблем. То есть код который не работает в телеге прекрасно работает в вайбер.

василий сказал(а)
Здравствуйте. Кроме всего прочего обратите внимание что данная переменная возвращает id пользователя только на странице ЛК. Может быть вы используете её в другом месте?

В телегу отправляю именно ссылку личного кабинета.

0
Preci
не в сети 18 часов
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1643
16
11:46

Что бы получить картинку телеграм у себя загружает вашу страницу и из кода берет ссылку на картинку. Если вы сами никакого кода не писали, то сайту не важно кто его открыл: вайбер, телеграм или вы через браузер.

Телеграм у вас картинки не подгружает для всех ЛК или конкретного? Может вы вставляете ссылку на юзера у которого не указана картинка, а при ручном указании значения переменной указываете другой ID пользователя, у которого есть картинка?

1
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
17
13:14

Так уже все смешалось кони, люди и котлеты.

Еще раз сначала и уже без шорткодов.

Есть файл header.php. Он находиться в папке темы на своем месте. Там вставляю код.

Пример 1.
В него внесен код с использованием $user_LK.

пример 1

Выводит ссылку все правильно, если "посмотреть код"
meta name="og:image" content="https://адрес_сайта/wp-content/uploads/2021/03/andrej-9.jpg"

Отправляю в телегу ссылку формата

Вы не можете просматривать опубликованные ссылки

Телега не видит. Вайбер видит.

Пример 2.
Вносим код в котором меняем $user_LK на обычную переменную в которую вводим ID пользователя.

пример 2

Выводит так же ссылку все правильно как и первый раз, если "посмотреть код"
meta name="og:image" content="https://адрес_сайта/wp-content/uploads/2021/03/andrej-9.jpg"

Теперь телега видит.

1. Если через шорткод, такая же картина.
2. Ситуация со ВСЕМИ личными кабинетами пользователей.
3. Картинки все на месте. (так как вайбер все показывает и видит)
4. Код из header.php в теге HEAD присутствует по любому при загрузке кабинета пользователя.
5. В телегу отправляется ссылка на кабинет пользователя

Вы не можете просматривать опубликованные ссылки

Вот такая фигня...

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
18
15:55

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

1
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
19
16:49

То же мимо. Забыл написать, все проверяю через бот @WebpageBot. Так что исключено с кешированием телеги.

0
Preci
не в сети 18 часов
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1643
20
18:07

Вы не можете просматривать опубликованные ссылки

Первая же ссылка при гуглении этого бота.

В recall никакой проблемы нет, когда генерируется страница - она делает это одинаково не зависимо от того как она открыта. Recall не знает кто запрашивает страницу - юзер или бот или еще кто.

1
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
21
19:49

Preci сказал(а)

Вы не можете просматривать опубликованные ссылки

Первая же ссылка при гуглении этого бота.

В recall никакой проблемы нет, когда генерируется страница - она делает это одинаково не зависимо от того как она открыта. Recall не знает кто запрашивает страницу - юзер или бот или еще кто.

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

0
garry
не в сети 15 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2925
22
20:13

А в логах сервера что то по поводу картинки есть? Можно поискать по такому куску айпи 149.154, конечно как вариант. Это вроде бот который превью запрашивает TelegramBot (like TwitterBot).

1
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
23
08:35

логи

Вот логи.

0
garry
не в сети 15 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2925
24
08:49

Jbox сказал(а)
Вот логи.

Я имел ввиду живые без обработки, как в файле. У меня например при запросе урла и сразу картинку запрашивает (кстати не все время, видимо что то уже или раньше или в кеше) и ответ по картинке 200. У вас что по картинке?

1
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
25
09:10

Нет фото. Используется $user_LK.
149.154.161.16 - - [03/Jun/2022:17:53:50 +0300] "GET /account/?user=13 HTTP/1.1" 200 19723 "-" "TelegramBot (like TwitterBot)"
149.154.161.16 - - [03/Jun/2022:17:53:51 +0300] "GET /account/ HTTP/1.1" 200 14342 "-" "TelegramBot (like TwitterBot)"

Есть фото, без $user_LK.
149.154.161.19 - - [03/Jun/2022:17:54:26 +0300] "GET /account/?user=13 HTTP/1.1" 200 19794 "-" "TelegramBot (like TwitterBot)"
149.154.161.19 - - [03/Jun/2022:17:54:26 +0300] "GET /account/ HTTP/1.1" 200 14339 "-" "TelegramBot (like TwitterBot)"
149.154.161.19 - - [03/Jun/2022:17:54:27 +0300] "GET /wp-content/uploads/2021/02/photo1_2640.jpg HTTP/1.1" 200 34582 "-" "TelegramBot (like TwitterBot)"

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
26
09:53

Так бот пытается забрать изображение со страницы /account/, а это не ЛК, там $user_LK не определена.

1
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
27
12:37

Андрей CS сказал(а)
Так бот пытается забрать изображение со страницы /account/, а это не ЛК, там $user_LK не определена.

Так уже ближе. Хотя я писал выше
===============
Отправляю в телегу ссылку формата

Вы не можете просматривать опубликованные ссылки

===============
Мои бока, я почему то решил что account это ЛК.
Вопрос, как можно передать $user_LK в страницу /account/ или вытянуть ID пользователя, в данном случае 47, из ссылки передаваемой телеге, чтобы по нему уже подтянуть фото из базы данных? Если не трудно. Я понимаю, что всех уже задолбал. )

0
Андрей CS
не в сети 2 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
28
13:03

если у телеги сложности с гет-параметрами, то я бы посоветовал выводить ЛК на архивной странице, а не шорткодом, там урл формируется без гет-параметров

1
Jbox
не в сети 1 год
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
29
11:54

Андрей CS сказал(а)
если у телеги сложности с гет-параметрами, то я бы посоветовал выводить ЛК на архивной странице, а не шорткодом, там урл формируется без гет-параметров

Так все работает. Огромнейшее всем спасибо за помощь и потраченное время.

0
Тема закрыта. Публикация новых сообщений запрещена.