Изменение поля GUID при создании/обновлении записи

# Изменение поля GUID при создании/обновлении записи

В некоторых случаях бывает удобно записать реальный рабочий URL (адрес) записи в поле GUID. Например, если у нас сложная логика создания URL для записей, лучше сохранить его в поле GUID и использовать по мере необходимости.

## Пример кода для сохранения URL записи в поле GUID таблицы wp_posts

### Изменение поля GUID при создании/обновлении записи

Чтобы автоматически обновлять поле GUID, когда мы создаем или редактируем запись, можно использовать следующий код:

```php
add_action( 'save_post', 'permalink_to_post_guid' );

function permalink_to_post_guid( $post_id ){
    global $wpdb;

    $guid = get_permalink( $post_id ); // Получаем ссы��ку на запись
    $wpdb->update( $wpdb->posts, [ 'guid' => wp_make_link_relative( $guid ) ], [ 'ID'=>$post_id ] ); // Обновляем поле GUID

    clean_post_cache( $post_id ); // Очищаем кэш записи
}

Изменение поля GUID только для определенного типа записи

Если нужно изменить поле GUID только для определенного типа записи, можно использовать этот код:

add_action( 'save_post_posttype', 'permalink_to_post_guid' );

function permalink_to_post_guid( $post_id ){
    global $wpdb;

    $guid = get_permalink( $post_id ); // Получаем ссылку на запись
    $wpdb->update( $wpdb->posts, [ 'guid' => wp_make_link_relative( $guid ) ], [ 'ID'=>$post_id ] ); // Обновляем поле GUID

    clean_post_cache( $post_id ); // Очищаем кэш записи
}

Объяснение кода

  • add_action: Эта функция добавляет наш код (функцию) в определенное место в WordPress. В данном случае мы используем её для выполнения кода при сохранении записи.
  • get_permalink: Эта функция получает полный адрес (URL) записи.
  • $wpdb: Это глобальный объект, который позволяет выполнять запросы к базе данных WordPress.
  • wp_make_link_relative: Эта функция преобразует URL в относительный (т.е. убирает часть адреса, которая не нужна).
  • clean_post_cache: Эта функция очищает кэш записи, чтобы изменения сразу отобразились.

Теперь вы знаете, как изменять поле GUID для записей в WordPress при их создании или обновлении. Это может быть полезно для обеспечения корректности ссылок на ваши записи.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *