Il existe plusieurs manières d'obtenir l'identifiant d'une publication après son enregistrement (auto, etc.), mais existe-t-il un moyen d'obtenir l'identifiant de la publication immédiatement après la création d'une nouvelle publication?
J'essaie de créer un répertoire à l'aide de l'identifiant de publication, mais je n'arrive pas à obtenir un identifiant de publication statique.
le code ci-dessous semble fonctionner, mais je reçois un identifiant automatiquement incrémenté chaque fois que le nouveau post auto enregistre le brouillon. Je reçois continuellement un nouveau numéro.
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');
Je voudrais obtenir le post-id qu'il sera enregistré sous. WP a-t-il une méthode pour déterminer cela correctement? Ou le projet de sauvegarde automatique enregistre-t-il chaque minute en incrémentant l'identifiant jusqu'à ce que le bouton "Publier" soit cliqué?
pensées?
à votre santé! bo
Essaye ça...
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);
}
}
NOTE: Changez de save_posts
en post_updated
pour arrêter le problème en double car il se déclenche le "Publier" seulement et pas à chaque fois que vous frappez add new
ou update
etc.
NOTE: J'ai vérifié cela pour vous en testant l'extrait ci-dessus - tout va bien.
REMARQUE: Vous pouvez également utiliser (wp_upload_dir() . $post_id, 0777)
si vous voulez un chemin plus facilement transportable ou si vous développez un plugin ou un thème pour un usage public.