Как получить ID текущей страницы в админ-панели при редактировании?
Большинство найденных решений предназначены для фронтенда. Это для плагина, поэтому вся активность происходит в админ-панели.
Как получить ID страницы, которая в данный момент используется (редактируется) в админ-панели?
Примечание Это вне цикла WordPress. Мне просто нужно получить ID страницы (не записи), которую я сейчас просматриваю в админ-панели.

Вы также можете использовать
$post_id = $_GET['post'];
Или вы можете использовать хук (вероятно, это лучше).
function id_WPSE_114111() {
global $post;
$id = $post->ID;
// сделать что-то
}
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' );

Вы можете добавить этот код в файл functions.php, и он создаст метабокс над блоком настроек публикации при редактировании записи или страницы.
<?php
function cf_post_id() {
global $post;
// Получаем данные
$id = $post->ID;
// Выводим поле
echo '<input type="text" name="_id" value="' . $id . '" class="widefat" disabled />';
}
function ve_custom_meta_boxes() {
add_meta_box('projects_refid', 'ID записи', 'cf_post_id', 'post', 'side', 'high');
add_meta_box('projects_refid', 'ID страницы', 'cf_post_id', 'page', 'side', 'high');
}
add_action('add_meta_boxes', 've_custom_meta_boxes');
?>

Это, вероятно, "наиболее безопасный" способ проверки текущей записи на странице редактирования (и добавления) записи в админке WordPress.
function wpse114111_get_current_post_id(): ?WP_Post {
global $post;
if (empty($post) && array_key_exists('post', $_GET)) {
$post = get_post($_GET['post']);
}
// Опционально: получить пустой объект записи из типа записи
if (empty($post) && array_key_exists('post_type', $_GET)) {
$object = new stdClass();
$object->post_type = $_GET['post_type'];
return new WP_Post($object);
}
if (empty($post)) {
return null;
}
return $post;
}

Просто используйте этот код в файле functions.php, он вернет ID текущей редактируемой страницы или записи
function get_the_current_page_id(){
$post_id = null;
if( isset( $_REQUEST['post']) || isset($_REQUEST['post_ID'] ) ){
$post_id = empty( $_REQUEST['post_ID'] ) ? $_REQUEST['post'] : $_REQUEST['post_ID' ];
}
//print_r($post_id) Для проверки
//die();
}
//get_the_current_page_id() //Вызов функции
