¿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.


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

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

?>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.