Come posso ottenere l'ID pagina di modifica corrente nell'amministratore?


11

La maggior parte delle soluzioni che ho trovato sono per l'uso front-end. Questo è per un plugin, quindi tutte le attività sono nel back-end.

Come posso ottenere l'ID pagina attualmente in uso (modificato) nell'amministratore?

Nota : sono fuori dal giro. Devo solo ottenere l'ID della pagina (non i post) che sto attualmente vedendo nel back-end.


Puoi ottenerlo dall'URLwp-admin/post.php?post=14&action=edit
Bindiya Patoliya,

4
Vedo l'URL come un ultimo colpo. Spero che ci sia un modo più elegante per farlo.
Daniel,

Risposte:


20

Puoi anche usare

$post_id = $_GET['post'];

Oppure puoi usare un gancio (probabilmente meglio).

function id_WPSE_114111() {
    global $post;
    $id = $post->ID;
    // do something
}

add_action( 'admin_notices', 'id_WPSE_114111' );

Dovrai aggiungere un condizionale poiché verrà eseguito su tutte le pagine di amministrazione, ti consiglio di utilizzare get_current_screen();

Ad esempio per funzionare solo su pagine :

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

Ho bisogno di pagine.
Daniel,

Questo funziona anche per le pagine.
Wyck,

2
a cosa serve global $my_admin_page;?
Omer,

2

Puoi aggiungere questo codice nel file Functions.php e ti darà una meta box sopra la casella delle impostazioni di pubblicazione quando modifichi un post o una pagina.

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

?>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.