Come ottenere l'ID della pagina corrente in modifica nell'admin?

14 set 2013, 07:49:46
Visualizzazioni: 46.1K
Voti: 14

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

Come posso ottenere l'ID della pagina che è attualmente in uso (in modifica) nell'admin?

Nota Sono fuori dal loop. Ho solo bisogno di ottenere l'ID della pagina (non dei post) che sto attualmente visualizzando nel back-end.

2
Commenti

Puoi ottenerlo dall'URL wp-admin/post.php?post=14&action=edit

Bindiya Patoliya Bindiya Patoliya
14 set 2013 08:07:05

Vedo l'URL come ultima risorsa. Spero ci sia un modo più elegante per farlo.

Daniel Daniel
14 set 2013 08:11:06
Tutte le risposte alla domanda 4
3
27

Puoi anche usare

$post_id = $_GET['post'];

Oppure puoi usare un hook (probabilmente meglio).

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

add_action( 'admin_notices', 'id_WPSE_114111' );

Dovrai aggiungere una condizione poiché questo verrà eseguito su tutte le pagine di amministrazione, ti consiglio di usare get_current_screen();

Ad esempio per eseguire solo sulle 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' );
14 set 2013 08:19:10
Commenti

Ne ho bisogno per le pagine.

Daniel Daniel
14 set 2013 08:27:11

Questo funziona anche per le pagine.

Wyck Wyck
14 set 2013 08:34:45

a cosa serve global $my_admin_page;?

Omer Omer
8 dic 2016 19:26:06
0

Puoi aggiungere questo codice nel file functions.php e ti mostrerà un meta box sopra il riquadro delle impostazioni di pubblicazione quando modifichi un articolo o una pagina.

 <?php

function cf_post_id() {
    global $post;

   // Ottiene i dati
   $id = $post->ID;

   // Mostra il campo
   echo '<input type="text" name="_id" value="' . $id . '" class="widefat" disabled />';
  }

 function ve_custom_meta_boxes() {
    add_meta_box('projects_refid', 'ID Articolo', 'cf_post_id', 'post', 'side', 'high');
    add_meta_box('projects_refid', 'ID Pagina', 'cf_post_id', 'page', 'side', 'high');
   }
   add_action('add_meta_boxes', 've_custom_meta_boxes');

?>
14 set 2013 08:17:08
0

Questo è probabilmente il modo "più sicuro" per verificare qual è il post corrente nella pagina di modifica (e aggiunta) dei post nell'area di amministrazione di WordPress.

function wpse114111_get_current_post_id(): ?WP_Post {
    global $post;

        if (empty($post) && array_key_exists('post', $_GET)) {
            $post = get_post($_GET['post']);
        }

        // Opzionale: ottieni un oggetto post vuoto dal post_type
        if (empty($post) && array_key_exists('post_type', $_GET)) {
            $object = new stdClass();
            $object->post_type = $_GET['post_type'];
            return new WP_Post($object);
        }

        if (empty($post)) {
            return null;
        }

        return $post;
}
14 mag 2020 18:11:43
0
-1

Puoi utilizzare questo codice nel file functions.php, ti restituirà l'ID della pagina o del post corrente che stai modificando

function get_the_current_page_id(){
$post_id = null;
if( isset( $_REQUEST['post']) || isset($_REQUEST['post_ID'] ) ){
    $post_id = empty( $_REQUEST['post_ID'] ) ? $_REQUEST['post'] : $_REQUEST['post_ID' ];
}
    
//print_r($post_id) Per verificare
//die();
}

//get_the_current_page_id() //Chiama la funzione
4 apr 2022 11:00:17