La plupart des solutions que j'ai trouvées sont destinées à une utilisation en amont. Ceci est pour un plugin, donc toute l'activité est dans le back-end.
Comment obtenir l'ID de page en cours d'utilisation (modifié) dans l'administrateur?
Note Je suis hors de la boucle. J'ai juste besoin d'obtenir l'ID de la page (pas les messages) que je vois actuellement dans le back-end.
Vous pouvez aussi utiliser
$post_id = $_GET['post'];
Ou vous pouvez utiliser un crochet (probablement mieux).
function id_WPSE_114111() {
global $post;
$id = $post->ID;
// do something
}
add_action( 'admin_notices', 'id_WPSE_114111' );
Vous devrez ajouter une condition, car celle-ci fonctionnera sur toutes les pages d'administration. Je vous recommande d'utiliser get_current_screen();
.
Par exemple, exécuter uniquement sur pages :
function id_WPSE_114111() {
global $my_admin_page;
$screen = get_current_screen();
if ( is_admin() && ($screen->id == 'page') ) {
global $post;
$id = $post->ID;
var_dump($id);
}
}
add_action( 'admin_notices', 'id_WPSE_114111' );
Vous pouvez ajouter ce code dans le fichier functions.php. Une boîte de méta située au-dessus de la boîte de dialogue des paramètres de publication vous sera alors fournie lors de la modification d'un article ou d'une page.
<?php
function cf_post_id() {
global $post;
// Get the data
$id = $post->ID;
// Echo out the field
echo '<input type="text" name="_id" value="' . $id . '" class="widefat" disabled />';
}
function ve_custom_meta_boxes() {
add_meta_box('projects_refid', 'Post ID', 'cf_post_id', 'post', 'side', 'high');
add_meta_box('projects_refid', 'Page ID', 'cf_post_id', 'page', 'side', 'high');
}
add_action('add_meta_boxes', 've_custom_meta_boxes');
?>