wake-up-neo.net

Holen Sie sich die post_id eines neuen Beitrags

Es gibt verschiedene Möglichkeiten, die ID eines Beitrags nach dem Speichern abzurufen (automatisch usw.). Gibt es jedoch eine Möglichkeit, die Beitrags-ID unmittelbar nach dem Erstellen eines neuen Beitrags abzurufen?

Ich versuche, ein Verzeichnis mit der Beitrags-ID zu erstellen, aber ich kann anscheinend keine statische Beitrags-ID erhalten.

der folgende Code scheint zu funktionieren, aber ich erhalte jedes Mal eine automatisch inkrementierte ID zurück, wenn der neue Beitrag den Entwurf automatisch speichert. Ich erhalte ständig eine neue Nummer.

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

Ich möchte die Beitrags-ID erhalten, unter der sie gespeichert wird. Sicherlich hat WP eine Methode, um dies zu bestimmen? Oder speichert der Entwurf automatisch jede Minute, indem er die ID um eins erhöht, bis auf die eigentliche Schaltfläche "Veröffentlichen" geklickt wird?

gedanken?

prost! bo

2
roberthuttinger

Versuche dies...

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

HINWEIS: Ändere von save_posts zu post_updated, wodurch das doppelte Problem beim Auslösen gestoppt wird. "Publizieren" Nur und nicht jedes Mal, wenn du add new oder update drückst.

HINWEIS: Ich habe dies für Sie überprüft, indem ich vor allem das Snippet getestet habe - alles gut.

HINWEIS: Sie können auch (wp_upload_dir() . $post_id, 0777) verwenden, wenn Sie einen Pfad benötigen, der transportabler ist, oder wenn Sie ein Plugin oder Thema für die öffentliche Verwendung entwickeln.

8
userabuser