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.


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

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

?>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.