maxim_tsyplenkov
@maxim_tsyplenkov

Как сделать ежедневную смену даты публикации 2х постов в wordpress при помощи php и cron?

Версия PHP: 7.4.13 (alt)
Сервер баз данных
Сервер: MySQL (Localhost via UNIX socket)
Тип сервера: MySQL
Версия сервера: 5.6.50 - MySQL Community Server (GPL)
Версия протокола: 10

Есть две страницы в wordpress дата публикации которых требует ежедневного обновления.

Данные страниц в базе данных:

Страница 1:
Таблица: wp_posts
ID: 719
post_date: 2021-04-14 20:55:17
post_date_gmt: 2021-04-14 17:55:17
post_modified: 2021-04-14 20:55:54
post_modified_gmt: 2021-04-14 17:55:54

Страница 2:
Таблица: wp_posts
ID: 50913
post_date: 2021-04-14 20:55:17
post_date_gmt: 2021-04-14 17:55:17
post_modified: 2021-04-14 20:55:54
post_modified_gmt: 2021-04-14 17:55:54

Подскажите как можно реализовать при помощи php и cron ежедневное обновление даты на текущую (время оставить как есть)?
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 4
dyuriev
@dyuriev
A posteriori
По моему скромному мнению, если посмотреть внимательно на вопрос, то можно увидеть ответ
Написать php скрипт, который будет с помощью sql запроса обновлять дату на текущую
Сам скрипт будет от силы в 10 строк.
Если еще время можно менять, то одним составным запросом обновить можно.

PS: цель какую преследуете?
Ответ написан
glaphire
@glaphire
PHP developer
Вы можете написать этот скрипт независимо от возможностей wordpress. Тут достаточного голого php и голых sql запросов через pdo. Это два update запроса. Добавление скрипта в crontab это тоже одна строчка для добавления (очень много есть примеров, был даже интерактивный сайт, который на лету описывал расшифровку частоты запуска крона)
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Тут даже PHP не нужен. Достаточно написать один запрос используя NOW() и WHERE ... IN и выполнять его через консольный mysql в заданное время.
Ответ написан
Комментировать
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Я соглашусь с коллегами - тут достаточно голого php и голого sql, но если вам позарез нужны функции WordPress, то вот пример. Из него нужно сделать функцию и повесить на крон с помощью функции wp_schedule_event()

date_default_timezone_set("Europe/Moscow");

$posts = get_posts( array(
	'numberposts' => -1,
	'post_type'   => 'event',
) );

foreach ( $posts as $key => $post ) {
	$post_data = array(
		'ID' => $post->ID, 
		'post_date' => date('Y-m-d H:i:s'),
		'post_date_gmt' => gmdate('Y-m-d H:i:s'),
		'post_modified' => date('Y-m-d H:i:s'),
		'post_modified_gmt' => gmdate('Y-m-d H:i:s'),
	);

	// обновляем запись в базе данных
	wp_update_post( wp_slash( $post_data ) );
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы