Как отключить старые даты поста, которые создает ВП?

При обновлении даты поста создается поле _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 );
1
lethalblo
4 месяца назад 53
  • 0
    Kama 9855

    Судя по коду, можно просто отключить два фильтра:

    add_action( 'post_updated', 'wp_check_for_changed_dates', 12, 3 );
    add_action( 'attachment_updated', 'wp_check_for_changed_dates', 12, 3 );

    Вообще, такое сохранение в WordPress было добавлено, чтобы автоматически делать редиректы при изменеии даты, когда в ЧПУ (пермалинк) содержит дату.

    Такой редирект првоеряется на хуке:

    add_action( 'template_redirect', 'wp_old_slug_redirect' );

    Функция wp_old_slug_redirect()_find_post_by_old_date().

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

    lethalblo 4 месяца назад

    Спасибо. У меня был сайт, где ссылка содержала месяц и год. На версии ВП 4.3 _wp_old_date еще не было, но редиректы работали идеально. Возможно сейчас редиректы работают по другому, но для меня это не так важно.

    lethalblo 4 месяца назад

    Хотя еще раз пересмотрел код. wp_old_slug это действительно для редиректа, но я отключаю wp_old_date. Как я понял эти функции не связаны

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация