@Ysery

В WordPress post_modified сделать одинаковым post_date?

Приветствую, уважаемые специалисты.

Нашёл на просторах Интернета код, но он не работает. Что не так?

Оный должен при сохранении поста устанавливать дату модификации равной дате поста. Причём оная может быть как прошлая, так и сильно будущая (ещё не наступившая).
function update_modified_date_to_post_date( $post ) {
    global $wpdb;
    $wpdb->query("UPDATE $wpdb->posts SET post_modified = '{$post->post_date}', post_modified_gmt = '{$post->post_date_gmt}' WHERE ID = {$post->ID}" );
}
add_action( 'publish_post', 'update_modified_date_to_post_date', 10, 1 );
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 1
Kleindberg
@Kleindberg
Full stack
Чтобы при создании или редактировании записи дата изменения устанавливалась из даты создания можно использовать этот код в файле functions.php вашей темы, он просто обновляет аттрибуты записи:

function update_modified_date_to_post_date($post_id) {
	// Получаем дату создания записи
	$creation_date = get_the_date('Y-m-d H:i:s', $post_id);

	// Обновляем дату изменения записи
	$update_args = array(
		'ID' => $post_id,
		'post_modified' => $creation_date,
		'post_modified_gmt' => get_gmt_from_date($creation_date),
	);

	if ( ! wp_is_post_revision( $post_id ) ){
		// удаляем этот хук, чтобы он не создавал бесконечного цикла
		remove_action('save_post', 'update_modified_date_to_post_date');

		// обновляем пост, когда снова вызовется хук save_post
		wp_update_post($update_args);

		// снова вешаем хук
		add_action('save_post', 'update_modified_date_to_post_date');
	}
	
}
add_action('save_post', 'update_modified_date_to_post_date');
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы