Wie erhalte ich die aktuelle ID der Bearbeitungsseite im Administrator?

11

Die meisten Lösungen, die ich gefunden habe, sind für den Front-End-Einsatz bestimmt. Dies ist für ein Plugin, daher befindet sich die gesamte Aktivität im Back-End.

Wie erhalte ich die Seiten-ID, die derzeit im Administrator verwendet (bearbeitet) wird?

Beachten Sie, dass ich nicht mehr auf dem Laufenden bin. Ich muss nur die ID der Seite (nicht der Beiträge) abrufen, die ich derzeit im Backend sehe.

Daniel
quelle
Sie können es von URLwp-admin/post.php?post=14&action=edit
Bindiya Patoliya
4
Ich sehe die URL als letzten Schuss. Ich hoffe, es gibt einen eleganteren Weg, dies zu tun.
Daniel

Antworten:

19

Sie können auch verwenden

$post_id = $_GET['post'];

Oder Sie können einen Haken verwenden (wahrscheinlich besser).

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

add_action( 'admin_notices', 'id_WPSE_114111' );

Sie müssen eine Bedingung hinzufügen, da diese auf allen Administrationsseiten ausgeführt wird. Ich empfehle die Verwendung get_current_screen();

Zum Beispiel nur auf Seiten ausführen :

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
quelle
Ich brauche für Seiten.
Daniel
Dies funktioniert auch für Seiten.
Wyck
2
was global $my_admin_page;für?
Omer
2

Sie können diesen Code in die Datei functions.php einfügen. Beim Bearbeiten eines Beitrags oder einer Seite wird ein Meta-Feld über dem Feld für die Veröffentlichungseinstellungen angezeigt.

 <?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
quelle