관리자에서 현재 편집 페이지 ID를 어떻게 얻습니까?


11

내가 찾은 대부분의 솔루션은 프런트 엔드 용입니다. 이것은 플러그인을위한 것이므로 모든 활동은 백엔드에 있습니다.

관리자가 현재 사용하고있는 페이지 ID를 어떻게 얻습니까?

참고 나는 루프에서 벗어났습니다. 현재 백엔드에 표시되는 페이지 ID (게시물 아님)를 가져와야합니다.


URL에서 얻을 수 있습니다wp-admin/post.php?post=14&action=edit
Bindiya Patoliya

4
마지막 샷으로 URL을 봅니다. 더 우아한 방법 이 있기를 바랍니다 .
Daniel

답변:


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

페이지가 필요합니다.
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.