How to include the admin bar?

时间:2013-06-23 作者:passatgt

我正在开发一个需要自定义预览页面的插件。在本页中,我调用了必要的wp函数(wp-load.php和wp-admin/includes/admin.php)。

问题是,管理栏不可见。所以我的问题是,如何在这个页面上显示管理栏?这里是预览。php文件:

<?php

//Include wordpress core files
for ($i = 0; $i < $depth = 10; $i++) {
    $wp_root_path = str_repeat( \'../\', $i );
    if ( file_exists("{$wp_root_path}wp-load.php" ) ) {
        require_once("{$wp_root_path}wp-load.php");
        require_once("{$wp_root_path}wp-admin/includes/admin.php");
        break;
    }
}

//Redirect if user is not logged in
auth_redirect();

//Die if user can\'t edit posts
if(!current_user_can(\'edit_posts\') ) die(__("You don\'t have the neccessary permission to preview forms.", "nemus_slider"));

//And the actual preview code
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Preview</title>
    <?php wp_head(); ?>
</head>
<body>
    Some preview stuff...
    <?php wp_footer(); ?>
</body>
</html>

2 个回复
SO网友:br3nt

你看过法典吗??:http://codex.wordpress.org/Function_Reference/add_menu

如果你的代码是针对插件的,你不需要像现在这样加载任何WP文件!!!

SO网友:s_ha_dum

我同意@br3nt的说法,你做错了。我建议你这样做:

function display_my_preview() {
  if (!isset($_GET[\'my_preview\'])) return;

  //Redirect if user is not logged in
  if (!is_user_logged_in()) {
    auth_redirect();
  }

  //Die if user can\'t edit posts
  if(!current_user_can(\'edit_posts\') ) die(__("You don\'t have the neccessary permission to preview forms.", "nemus_slider"));

  //And the actual preview code
  ?>
  <!DOCTYPE html>
  <html lang="en">
  <head>
      <meta charset="utf-8" />
      <title>Preview</title>
      <?php wp_head(); ?>
  </head>
  <body>
      Some preview stuff...
      <?php wp_footer(); ?>
  </body>
  </html>
  <?php 
  exit();
} 
add_action(\'template_redirect\',\'display_my_preview\');
这样,您就不必处理包含任何核心文件的问题,您可以通过添加my_preview=true 到URL。显然,这是一个粗糙的实现,但它可以作为概念证明。

Note: 我知道auth_redirect 应该检查登录的用户状态,但我无法使其正常工作。我正在努力找出原因。直到,明确检查。

结束

相关推荐

ADD_TIME_SUPPORT(‘admin-bar’)导致致命错误

我正在努力学习更多关于主题开发的知识,所以我创建了自己的主题,除了添加functions.php 并尝试用一些简单的方法进行更新,如:<?php add_theme_support(\'admin-bar\', array(\'menus\')); ?> 我明白了Server 500 ERROR 我无法访问Wordpress的任何部分,甚至连仪表板都无法访问。但一旦我删除functions.php 和刷新页面我的Wordpress又回来了,工作顺利。有什么神秘的fu