Cum obțin ID-ul paginii curente în editare din admin?

14 sept. 2013, 07:49:46
Vizualizări: 46.1K
Voturi: 14

Majoritatea soluțiilor pe care le-am găsit sunt pentru front-end. Aceasta este pentru un plugin, deci toată activitatea este în back-end.

Cum pot obține ID-ul paginii care este în prezent utilizată (editată) în admin?

Notă Sunt în afara buclei. Am nevoie doar să obțin ID-ul paginii (nu al articolelor) pe care o văd în prezent în back-end.

2
Comentarii

Puteți obține acest lucru din URL-ul wp-admin/post.php?post=14&action=edit

Bindiya Patoliya Bindiya Patoliya
14 sept. 2013 08:07:05

Văd URL-ul ca ultima soluție. Sper că există o modalitate mai elegantă de a face asta.

Daniel Daniel
14 sept. 2013 08:11:06
Toate răspunsurile la întrebare 4
3
27

Poți folosi și

$post_id = $_GET['post'];

Sau poți folosi un hook (probabil mai bine).

function id_WPSE_114111() {
    global $post;
    $id = $post->ID;
    // fă ceva
}

add_action( 'admin_notices', 'id_WPSE_114111' );

Va trebui să adaugi o condiție întrucât acest cod va rula pe toate paginile de administrare, recomand să folosești get_current_screen();

De exemplu, pentru a rula doar pe pagini:

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 sept. 2013 08:19:10
Comentarii

Am nevoie pentru pagini.

Daniel Daniel
14 sept. 2013 08:27:11

Aceasta funcționează și pentru pagini.

Wyck Wyck
14 sept. 2013 08:34:45

la ce servește global $my_admin_page;?

Omer Omer
8 dec. 2016 19:26:06
0

Puteți adăuga acest cod în fișierul functions.php și vă va oferi o cutie meta deasupra casetei de setări de publicare atunci când editați un articol sau o pagină.

<?php

function cf_post_id() {
    global $post;

   // Obține datele
   $id = $post->ID;

   // Afișează câmpul
   echo '<input type="text" name="_id" value="' . $id . '" class="widefat" disabled />';
  }

 function ve_custom_meta_boxes() {
    add_meta_box('projects_refid', 'ID Articol', 'cf_post_id', 'post', 'side', 'high');
    add_meta_box('projects_refid', 'ID Pagină', 'cf_post_id', 'page', 'side', 'high');
   }
   add_action('add_meta_boxes', 've_custom_meta_boxes');

?>
14 sept. 2013 08:17:08
0

Aceasta este probabil cea mai "sigură" metodă de a verifica care este postarea curentă în pagina de editare (și adăugare) a postărilor din administrarea WordPress.

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

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

        // Opțional: obține un obiect post gol din 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 mai 2020 18:11:43
0
-1

Poți folosi acest cod în fișierul functions.php, îți va returna ID-ul paginii sau articolului curent în editare

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) Pentru verificare
//die();
}

//get_the_current_page_id() //Apelează funcția
4 apr. 2022 11:00:17