Jak uzyskać bieżący identyfikator strony edycji u administratora?

11

Większość rozwiązań, które znalazłem, są przeznaczone do użytku front-end. To jest dla wtyczki, więc cała aktywność jest w zapleczu.

Jak uzyskać identyfikator strony, który jest obecnie używany (edytowany) w adminie?

Uwaga : Jestem poza pętlą. Muszę tylko uzyskać identyfikator strony (nie postów), który aktualnie widzę w zapleczu.

Daniel
źródło
Możesz go pobrać z adresu URLwp-admin/post.php?post=14&action=edit
Bindiya Patoliya
4
Widzę adres URL jako ostatni strzał. Mam nadzieję, że jest na to bardziej elegancki sposób.
Daniel

Odpowiedzi:

20

Możesz także użyć

$post_id = $_GET['post'];

Lub możesz użyć haka (prawdopodobnie lepiej).

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

add_action( 'admin_notices', 'id_WPSE_114111' );

Będziesz musiał dodać warunek, ponieważ będzie on działał na wszystkich stronach administracyjnych, zalecamy użycie get_current_screen();

Na przykład, aby uruchomić tylko na stronach :

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' );
Wyck
źródło
Potrzebuję stron.
Daniel
Działa to również w przypadku stron.
Wyck
2
po co global $my_admin_page;?
Omer
2

Możesz dodać ten kod do pliku functions.php, a podczas edycji postu lub strony pojawi się pole meta nad polem ustawień publikowania.

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

?>
Bindiya Patoliya
źródło