Como obtenho o ID da página de edição atual no administrador?

11

A maioria das soluções que encontrei são para uso front-end. Isso é para um plug-in, portanto, toda a atividade está no back-end.

Como obtenho o ID da página atualmente em uso (editado) no administrador?

Note que estou fora do circuito. Eu só preciso obter o ID da página (não as postagens) que estou vendo no back-end.

Daniel
fonte
Você pode obtê-lo através da URLwp-admin/post.php?post=14&action=edit
Bindiya Patoliya
4
Eu vejo o URL como uma última tentativa. Espero que haja uma maneira mais elegante de fazer isso.
Daniel

Respostas:

20

Você também pode usar

$post_id = $_GET['post'];

Ou você pode usar um gancho (provavelmente melhor).

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

add_action( 'admin_notices', 'id_WPSE_114111' );

Você precisará adicionar uma condicional, pois ela será executada em todas as páginas de administrador, eu recomendo usar get_current_screen();

Por exemplo, para executar apenas em páginas :

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' );
Wyck
fonte
Eu preciso de páginas.
Daniel
Isso também funciona para páginas.
21713 Wyck
2
o que é global $my_admin_page;para?
Omer
2

Você pode adicionar esse código no arquivo functions.php e ele fornecerá uma meta box acima da caixa de configurações de publicação ao editar uma postagem ou página.

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

?>
Bindiya Patoliya
fonte