Как отключить старые даты поста, которые создает ВП?
При обновлении даты поста создается поле _wp_old_date.
Подскажите как правильно отключить создание этих полей?
Нашел 2 варианта по этой теме. Оба работают, но какой лучше использовать или без разницы?
Вариант 1
remove_action( 'post_updated', 'wp_check_for_changed_dates', 12, 3 );
Вариант 2
function disable_wp_old_date_meta( $check, $object_id, $meta_key, $meta_value, $prev_value ) { if ( $meta_key === '_wp_old_date' ) { return false; } return $check; } add_filter( 'update_post_metadata', 'disable_wp_old_date_meta', 10, 5 );
Судя по коду, можно просто отключить два фильтра:
Вообще, такое сохранение в WordPress было добавлено, чтобы автоматически делать редиректы при изменеии даты, когда в ЧПУ (пермалинк) содержит дату.
Такой редирект првоеряется на хуке:
Функция wp_old_slug_redirect() → _find_post_by_old_date().
Нужно иметь это ввиду и если у вас в пермалинках записей используются даты, то лучше не удалять этот функционал.
Спасибо. У меня был сайт, где ссылка содержала месяц и год. На версии ВП 4.3 _wp_old_date еще не было, но редиректы работали идеально. Возможно сейчас редиректы работают по другому, но для меня это не так важно.
Хотя еще раз пересмотрел код. wp_old_slug это действительно для редиректа, но я отключаю wp_old_date. Как я понял эти функции не связаны