Comment obtenir l'ID poste dans WordPress Admin
Je suis le développement d'un plugin WordPress et j'ai besoin de récupérer les Post ID
dans le Écrire des Post /Écriture de la Page d'écran d'édition de (en dehors de la boucle).
J'ai aussi besoin de le faire avant la "admin_print_scripts" crochet, depuis que je voudrais transmettre certaines données à un fichier javascript.
Je ne peux pas utiliser:
$id = $_GET['post'];
parce que l'url ne pas inclure cette variable lors de l'ajout d'un nouveau poste ou la page.
Jusqu'à présent, j'ai essayé ces options, mais aucun d'entre eux travaillaient:
A) renvoie un ID de 0
function myplugin_setup() {
global $wp_query;
$id = $wp_query->get_queried_object_id();
var_dump($id);
}
add_action('admin_init', 'myplugin_setup' );
B) renvoie l'ID est null
function myplugin_setup() {
global $wp_query;
$id = $wp_query->post->ID;
var_dump($id);
}
add_action('admin_init', 'myplugin_setup' );
C) Cela revient aussi l'ID est null
function myplugin_setup() {
global $post;
$id = $post->ID;
var_dump($id);
}
add_action('admin_init', 'myplugin_setup' );
source d'informationauteur Victor
Vous devez vous connecter pour publier un commentaire.
Assurez-vous d'appeler le global $post après l'WordPress requête. Si vous ajoutez une action à init ou admin_init, la requête n'est pas prête, donc il n'y a rien que vous pouvez sortir de la global $post variable.
Mon conseil serait de vérifier l'action de référence à partir de cette page: http://codex.wordpress.org/Plugin_API/Action_Reference et choisissez celui qui fonctionne pour vous.
Par exemple, j'ai fait ça:
Et j'ai été en mesure d'obtenir l'ID de la page dans l'admin WP
Utilisation:
au début de votre fonction. Vous devriez ensuite avoir accès à $post->ID pour récupérer l'id de la poste. Ce sera le cas pour les nouveaux et les postes existants.
Problème est, vous êtes à l'aide de admin_init crochet. Si vous regardez dans l'Action de Référence - http://codex.wordpress.org/Plugin_API/Action_Reference - vous verrez, que ce crochet est en fait appelée AVANT quering postes, c'est pourquoi les variables que vous utilisez ne sont pas encore remplis.
Vous pouvez utiliser plus tard, certains d'action (avec quelques is_admin (), ou vous pouvez utiliser admin init crochet pour ajouter une action à plus tard, certains de crochet, de sorte à nouveau, il sera utilisé uniquement sur admin.
Le "admin_init' action est déclenchée avant toute autre crochet lorsqu'un utilisateur accède à la zone d'administration. Il est déclenché avant que le nouveau poste reçoit un id.
Pour obtenir le nouveau post id, vous pouvez utiliser 'save_post", qui est une action déclenchée chaque fois qu'un article ou de la page est créé ou mis à jour (http://codex.wordpress.org/Plugin_API/Action_Reference/save_post).
D'abord, vous pouvez inclure vos scripts à l'aide de 'admin_enqueue_scripts' utiliser 'save_post afin d'obtenir le nouveau poste id. Le "admin_print_scripts est déclenché après "save_post" et vous pouvez utiliser wp_localize_script (https://codex.wordpress.org/Function_Reference/wp_localize_script), ou une autre méthode pour passer le nouveau poste id pour votre javascript.
J'ai besoin de quelque chose de similaire, mais il a été utilisé dans une classe.
Maintenant, dans votre code javascript que vous pouvez utiliser:
Si c'est un nouveau post/page, je suppose que l'id n'existe pas encore, parce que le poste n'a pas été publié/ajouté DB. Si vous essayez de modifier un post/page, je pense que vous pouvez utiliser
$id = $_GET['post']
;cela peut fonctionner :