Получить идентификатор новой публикации


Существует несколько способов получить идентификатор записи после ее сохранения (автоматически и т. Д.), Но есть ли способ получить идентификатор записи сразу после создания новой записи?

Я пытаюсь создать каталог, используя идентификатор записи, но, похоже, не могу получить статический идентификатор записи.

Приведенный ниже код, похоже, работает, но я получаю автоматически увеличенный идентификатор каждый раз, когда новая запись автоматически сохраняет черновик, я постоянно получаю новый номер.

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 есть метод для правильного определения этого? Или черновик автоматически сохраняется каждую минуту, увеличивая идентификатор на единицу, пока не будет нажата фактическая кнопка "опубликовать"?

Мысли?

Ура! бо

Author: roberthuttinger, 2012-04-23

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), если вам нужен более переносимый путь или если вы разрабатываете плагин или тему для публичного использования.

 8
Author: Adam, 2012-04-23 20:32:31