Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

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

При обновлении даты поста создается поле _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
1.4 года назад 58
  • 0
    Kama 9891

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

    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 1.4 года назад

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

    lethalblo 1.4 года назад

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

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