Як отримати поточний ідентифікатор сторінки редагування у адміністратора?


11

Більшість знайдених нами рішень призначені для переднього використання. Це для плагіна, тому вся активність знаходиться на звороті.

Як отримати ідентифікатор сторінки, який зараз використовується (редагується) в адміністраторі?

Зверніть увагу: я вийшов із циклу. Мені просто потрібно отримати ідентифікатор сторінки (а не публікації), який я зараз бачу в кінці.


Отримати його можна за URL-адресоюwp-admin/post.php?post=14&action=edit
Біндія Патолія,

4
Я бачу URL-адресу як останній знімок. Я сподіваюся, що є більш елегантний спосіб зробити це.
Даніель

Відповіді:


20

Ви також можете використовувати

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

Мені потрібні сторінки.
Даніель

Це також працює для сторінок.
Вік

2
для чого global $my_admin_page;?
Омер

2

Ви можете додати цей код у файл function.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');

?>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.