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

10

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á utilizando (editando) actualmente en el administrador?

Nota Estoy fuera del bucle. Solo necesito obtener el ID de la página (no las publicaciones) que estoy viendo actualmente en el servidor.

    
pregunta Daniel 14.09.2013 - 06:49

2 respuestas

14

También puedes usar

$post_id = $_GET['post'];

O puedes 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 se ejecutará en todas las páginas de administración. Recomiendo usar get_current_screen();

Por ejemplo, para ejecutarse 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' );
    
respondido por el Wyck 14.09.2013 - 07:19
2

Puedes agregar este código en el archivo functions.php y te dará un meta box 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');

?>
    
respondido por el Bindiya Patoliya 14.09.2013 - 07:17

Lea otras preguntas en las etiquetas