私が見つけた解決策のほとんどはフロントエンド用です。これはプラグイン用なので、すべてのアクティビティはバックエンドにあります。
管理者で現在使用(編集)されているページIDを取得する方法を教えてください。
注 ループ外です。バックエンドに表示されているページのID(投稿ではなく)を取得するだけです。
また使用することができます
$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();
の使用をお勧めします
たとえば、 pages のみで実行するとします。
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;
// 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');
?>