管理者で現在の編集ページIDを取得するにはどうすればよいですか?


11

私が見つけたほとんどのソリューションは、フロントエンドで使用するためのものです。これはプラグインのため、すべてのアクティビティはバックエンドにあります。

管理者で現在使用(編集)されているページIDを取得するにはどうすればよいですか?

ループから外れていることに注意してください。現在バックエンドに表示されている(投稿ではなく)ページのIDを取得するだけです。


URLから入手できますwp-admin/post.php?post=14&action=edit
Bindiya Patoliya 2013

4
最後のショットとしてURLを見ました。もっとエレガントな方法があるといいのですが。
Daniel

回答:


19

あなたも使うことができます

$post_id = $_GET['post'];

または、フックを使用することもできます(おそらくより良い)。

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

add_action( 'admin_notices', 'id_WPSE_114111' );

これはすべての管理ページで実行されるため、条件を追加する必要があります。 get_current_screen();

たとえば、ページでのみ実行するには:

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

ページが必要です。
Daniel

これはページでも機能します。
Wyck

2
何のglobal $my_admin_page;ため?
Omer

2

このコードをfunctions.phpファイルに追加すると、投稿またはページを編集するときに、公開設定ボックスの上にメタボックスが表示されます。

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

?>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.