Как называется действие, когда вы добавляете новую запись в WordPress?

Какое событие вызывается в WordPress во время открытия страницы "Добавить запись" в административной панели, до момента сохранения поста? Мне нужно создать папку с идентификатором этой записи, но я не могу найти информацию о том, какое событие происходит в этот момент.
  • 9 января 2024 г. 12:28
Ответы на вопрос 2
Добавление новой записи в WordPress обычно называется "создание поста" или "публикация поста" (в зависимости от того, сохраняете вы черновик или сразу публикуете запись).

В WordPress есть различные хуки (hooks), которые можно использовать для выполнения определенных действий во время работы с постами. Однако, большинство этих хуков активируются уже после того, как пост был сохранен или создан. Тем не менее, вы можете воспользоваться хуком `admin_action_{$action}` или проверить параметры страницы, чтобы выполнить свой код на странице "Добавить запись".

Тем не менее, WordPress не создает идентификатор записи до ее фактического сохранения в базе данных, что означает, что вам не удастся получить ID нового поста на странице "Добавить запись", поскольку пост еще не существует в базе данных. Поэтому создать папку в этот момент со сгенерированным ID будет невозможно.

Вам нужно будет использовать хук, который срабатывает после того, как пост был сохранен, например `save_post`, как показано ниже:

```php
function my_custom_save_post($post_id) {
    // Проверяем, что это новый пост
    if (get_post_status($post_id) === 'auto-draft') {
        // Создаем папку с ID поста
        $new_folder_path = WP_CONTENT_DIR . '/uploads/my_custom_directory/' . $post_id;
        if (!file_exists($new_folder_path)) {
            wp_mkdir_p($new_folder_path);
        }
        // Дополнительный код
    }
}
add_action('save_post', 'my_custom_save_post');
```

Если вы всё же хотите выполнить действия до сохранения поста, вам придется использовать JavaScript для отслеживания событий в административной панели или использовать некоторые хуки, предшествующие сохранению, например, `admin_footer` или `admin_head`, для добавления своего кода на страницу "Добавить запись". Но помните, что пост без ID еще не существует в базе данных, и вам понадобится другой маркер или временное решение для создания папки.
wp_after_insert_post ? 
Fires actions after a post, its terms and meta data has been saved.
Похожие вопросы