加载edit.php之前的Wordpress钩子

加载edit.php之前的Wordpress钩子,php,wordpress,Php,Wordpress,这看起来很琐碎,但我找不到解决办法 我有自定义的帖子过滤器。并不是每个用户都能编辑每一篇文章。它取决于自定义元标记。(这并不重要) 重要的是如果他们使用URL之类的东西` /edit.php?post=467 他们可以找到我“不允许他们”的帖子 我正在寻找的是,是否有可能得到一个像钩子一样的URL 管理员初始化 所以我可以做一些类似的事情 if (!isset($_GET['post'])){ //redirect } 或 谢谢大家。:-) 编辑:我刚刚意识到你在EDIT.php中,意思是Wo

这看起来很琐碎,但我找不到解决办法

我有自定义的帖子过滤器。并不是每个用户都能编辑每一篇文章。它取决于自定义元标记。(这并不重要)

重要的是如果他们使用URL之类的东西`

/edit.php?post=467

他们可以找到我“不允许他们”的帖子

我正在寻找的是,是否有可能得到一个像钩子一样的URL

管理员初始化

所以我可以做一些类似的事情

if (!isset($_GET['post'])){ //redirect }


谢谢大家。:-)

编辑:我刚刚意识到你在EDIT.php中,意思是WordPress的管理区域。。。在这种情况下,正如您提到的“admin_init”操作

尝试以下方法:

**快速提示:你说过如果
isset($\u GET['post'])你想重定向,
right。。在你的例子中,你说的是
!isset($\u GET['post'])
因此需要验证您的意思

function restrict_admin_with_redirect() {

    if (isset($_GET['post'])) {
        wp_redirect( site_url() ); 
        exit;
    }
}

add_action( 'admin_init', 'restrict_admin_with_redirect', 1 );
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////

其他资料:

如果正在执行的页面不在管理区域,而是在WordPress的前端,如普通页面或帖子:

有几个钩子可以用来做这个。您还可以选择编辑主题的
header.php
文件

查看
内容
过滤器:

您可以将其添加到
functions.php
文件中(最好使用子主题,以便在更新主主题时不会覆盖更改)

或者在header.php文件的开头(在输出任何html之前),添加如下内容:

  if (isset($_GET['post'])){
     wp_redirect( {url to redirect to} );
     exit();
  }

在WordPress开发问题的网站上,你可能会得到更多的帮助:如果没有人帮助我,我可能会尝试。我在发布之前就尝试过这一个,但由于某种原因,无法访问$\u GET全局变量。我可以再试一次,把我的想法贴在那里
function my_the_content_filter($content) {

  if (isset($_GET['post'])){
     return 'You do not have access to this page.';
  }

  // otherwise returns the database content
  return $content;
}

add_filter( 'the_content', 'my_the_content_filter' );
  if (isset($_GET['post'])){
     wp_redirect( {url to redirect to} );
     exit();
  }