Як показати архів твітів у WordPress за допомогою PHP і MySQL із підтримкою Crontab?
Твітер погано відображає всі твіти. Наразі я маю понад 600 твітів (більшість із них надіслано скриптом PHP на VPS ). Якщо ви хочете локально зберегти копію всіх своїх історичних твітів у власній базі даних, ви, звичайно, можете надіслати запит на архів у своєму обліковому записі Twitter [Налаштування – Обліковий запис – Запит архіву].
запит-твіттер-архів
Як щодо того, щоб ви могли зберегти всі твіти та відобразити їх у своєму блозі (на сторінці WordPress)? Ідея чудова, тому що твіти можна розглядати як статті для цілей SEO. Отже, вам потрібно буде створити таблицю в базі даних WordPress, наприклад, давайте назвемо її tweets
.
tweet-history-table
У нас є чотири стовпці, а саме: ідентифікатор твіту, текст, дата/час, кількість ретвітів. Звичайно, ви можете отримати більше інформації з twitter API statuss/user_timeline, але нас цікавлять лише ці чотири.
Локальне зберігання
Завжди існує обмеження на швидкість використання API Twitter, тому ви не можете використовувати їх дуже часто. Однак ідея тут полягає в тому, щоб мати скрипт PHP, який запускається в crontab (кожні кілька годин) і отримує твіти та зберігає їх локально в базі даних.
Ми можемо використовувати php-бібліотеку TwitterOAuth для взаємодії з API Twitter:
Збережіть вище як twitter.php, щоб ми могли включати їх щоразу, якщо ми хочемо отримати доступ до Twitter API.
mysql_query( ” SET NAMES utf8") гарантує, що твіти правильно вставляються в базу даних. mb_detect_encoding перевірить, чи твіти, які повертаються з API, дійсно мають кодування UTF-8. Наведений вище скрипт PHP перевірить наявність дублікатів (на основі Twitter ID), тому вперше буде вставлено новий твіт, а вдруге він буде лише оновлений.
Існує максимальна кількість твітів, які можна отримати за один виклик API, наприклад, 300. Якщо у вас більше твітів, ви завжди можете кілька разів викликати сценарій, щоб завантажити всі твіти. Однак нам потрібно вказати параметр max_id, який повертатиме твіти, старші за цей ідентифікатор (менші ідентифікатори). Отже, ми можемо:
Ідея полягає в тому, щоб перевірити наявність найстарішого твіту (з мінімальним ідентифікатором) і повернути лише старіші твіти, тому якщо ви запустите сценарії кілька разів, ви імпортуєте всі твіти.
Тепер у нас є готові дані, і ми можемо змусити цей сценарій запускатися на сервері VPS кожні кілька годин (частота залежить від вас) за допомогою команди crontab -e.
Показувати твіти на сторінках WordPress
Тепер ця сторінка helloacm.com/tweets-history/ показує всі дерева з бази даних. Вам знадобиться плагін для виконання PHP/HTML на сторінці WordPress. Ви можете легко знайти такі плагіни wordpress.
Створіть сторінку WordPress і вставте наступне:
[ include ]tweets.php[ / include ]
Потім нам потрібно помістити скрипт PHP у цей tweets.php, указаний вище.
Ми використовуємо get_query_var(‘page’), щоб отримати рядок запиту, щоб знати, яку сторінку ми переглядаємо.