Получить идентификатор новой публикации
Существует несколько способов получить идентификатор записи после ее сохранения (автоматически и т. Д.), Но есть ли способ получить идентификатор записи сразу после создания новой записи?
Я пытаюсь создать каталог, используя идентификатор записи, но, похоже, не могу получить статический идентификатор записи.
Приведенный ниже код, похоже, работает, но я получаю автоматически увеличенный идентификатор каждый раз, когда новая запись автоматически сохраняет черновик, я постоянно получаю новый номер.
function myfunction( $id ) {
if (!file_exists("/www/foo/blog/wp-content/uploads/" . $id)) {
mkdir("/www/foo/blog/wp-content/uploads/" . $id, 0777);
}
}
add_action('save_post', 'myfunction');
Я хотел бы получить идентификатор записи, под которым она будет сохранена. Наверняка у WP есть метод для правильного определения этого? Или черновик автоматически сохраняется каждую минуту, увеличивая идентификатор на единицу, пока не будет нажата фактическая кнопка "опубликовать"?
Мысли?
Ура! бо
1 answers
Попробуйте это...
add_action('post_updated', 'myfunction');
function myfunction( $post_id ) {
global $post;
if (!file_exists("/www/foo/blog/wp-content/uploads/" . $post_id)) {
mkdir("/www/foo/blog/wp-content/uploads/" . $post_id, 0777);
}
}
ПРИМЕЧАНИЕ: Измените значение с save_posts
на post_updated
, что остановит проблему дублирования при запуске "опубликовать" только, а не каждый раз, когда вы нажимаете add new
или update
и т. Д.
ПРИМЕЧАНИЕ: Я проверил это для вас, протестировав приведенный выше фрагмент - все хорошо.
ПРИМЕЧАНИЕ: Вы также можете использовать (wp_upload_dir() . $post_id, 0777)
, если вам нужен более переносимый путь или если вы разрабатываете плагин или тему для публичного использования.