如何在管理员中获取当前编辑页面ID?

时间:2013-09-14 作者:Daniel

我找到的大多数解决方案都是供前端使用的。这是针对插件的,因此所有活动都在后端。

如何获取当前正在管理中使用(编辑)的页面ID?

Note 我不在圈子里。我只需要获取当前在后端看到的页面(而不是帖子)的ID。

3 个回复
最合适的回答,由SO网友:Wyck 整理而成

您还可以使用

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

SO网友:Bindiya Patoliya

您可以在函数中添加此代码。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\');

?>

SO网友:luukvhoudt

这可能是在wp admin的帖子编辑(和添加)页面上检查当前帖子内容的“最安全”方法。

function wpse114111_get_current_post_id(): ?WP_Post {
    global $post;

        if (empty($post) && array_key_exists(\'post\', $_GET)) {
            $post = get_post($_GET[\'post\']);
        }

        // Optional: get an empty post object from the post_type
        if (empty($post) && array_key_exists(\'post_type\', $_GET)) {
            $object = new stdClass();
            $object->post_type = $_GET[\'post_type\'];
            return new WP_Post($object);
        }

        if (empty($post)) {
            return null;
        }

        return $post;
}

结束

相关推荐

Admin-ajax.php不再加载

我正在研究wordpress 3.6。一切都很好,但在启动网站之前,管理员更改了域名。所有内容都保留在同一台服务器中。我们不需要移动任何文件,所有文件和文件夹都保持在以前的相对位置。为了处理域名的变化,我用Search & Replace DB 据我所知,脚本和所有内容在前端都运行良好。然而,后端存在一些问题。最令人讨厌的是管理ajax。php不再加载,阻止我们添加/删除/编辑图像和所有其他需要此脚本的任务。这是FIREBUG在编辑帖子并单击“添加媒体”时给我的信息:GET http://word