¿Cómo obtengo el ID de la página de edición actual en el administrador?

11

La mayoría de las soluciones que encontré son para uso frontal. Esto es para un complemento, por lo que toda la actividad está en el back-end.

¿Cómo obtengo el ID de página que se está usando (editando) actualmente en el administrador?

Tenga en cuenta que estoy fuera del circuito. Solo necesito obtener el ID de la página (no las publicaciones) que estoy viendo actualmente en el back-end.

Daniel
fuente
Puede obtenerlo de la URLwp-admin/post.php?post=14&action=edit
Bindiya Patoliya,
44
Veo la URL como un último disparo. Espero que haya una forma más elegante de hacerlo.
Daniel

Respuestas:

20

También puedes usar

$post_id = $_GET['post'];

O puede usar un gancho (probablemente mejor).

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

add_action( 'admin_notices', 'id_WPSE_114111' );

Deberá agregar un condicional ya que esto se ejecutará en todas las páginas de administración, le recomiendo usar get_current_screen();

Por ejemplo, para ejecutar solo en 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
fuente
Necesito páginas
Daniel
Esto también funciona para las páginas.
Wyck
2
lo que es global $my_admin_page;para?
Omer
2

Puede agregar este código en el archivo functions.php y le dará un cuadro de meta sobre el cuadro de configuración de publicación al editar una publicación o 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
fuente