web-dev-qa-db-ja.com

新しい投稿のpost_idを取得します

投稿を保存した後にその投稿のIDを取得する方法はいくつかあります(自動など)が、新しい投稿を作成した直後に投稿IDを取得する方法はありますか?

投稿IDを使用してディレクトリを作成しようとしていますが、静的な投稿IDを取得できないようです。

以下のコードはうまくいくようですが、私は新しい投稿がドラフトを自動保存するたびに自動インクリメントされたIDを返します、私は継続的に新しい番号を取得します。

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');

保存される投稿IDを取得したいのですが。確かにWPに正しい判断方法がありますか?それともドラフトは、実際の「公開」ボタンがクリックされるまで、IDを1ずつ増加させながら毎分自動保存しますか?

考え?

乾杯!ボー

2
roberthuttinger

これを試して...

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に変更すると、重複する問題が発生します "publish"add newupdateなどを押すたびにではなく、.

注:上記のスニペットをテストして、これを確認しました - すべて問題ありません。

注:より移植性の高いパスが必要な場合、または公用のプラグインまたはテーマを開発している場合は、(wp_upload_dir() . $post_id, 0777)を使用することもできます。

8
userabuser