【问题标题】:Wordpress - post status - publish vs draftWordpress - 发布状态 - 发布与草稿
【发布时间】:2012-05-17 22:13:25
【问题描述】:

我已经在 wordpress 页面上实现了登录/注册的可能性。所有注册用户都注册为“订阅者”。用户可以从我实现用于创建和编辑帖子的表单的页面添加和编辑帖子(“自定义帖子类型”)。 当用户输入帖子的所有必填字段(在该页面上)时,他们可以保存并发布或保存并取消发布(因此他们可以继续编辑该帖子,并在准备好后发布)。

所以,我发现自己陷入了这个问题。

  • 当用户点击保存并发布按钮时,一切正常,我将 post_status 更改为“发布”并且它的公开,一切正常。

  • 如果用户点击保存并取消发布,我会将 post_status 更改为草稿! (在这里我有问题) 是否有可能显示此草稿(仅限创建它的用户)。预览之类的?

【问题讨论】:

  • 让我直说吧,你制作了一个单独的表单来支持 wordpress 的帖子功能?
  • 您不能将其设置为该用户的私有吗?
  • 我不确定我理解你吗?我为在数据库中插入帖子实现了单独的表单。 (与其他任何常规形式一样,用于允许登录用户在数据库中插入帖子)
  • @Elliott 不是“私人”只允许编辑和管理员查看?抱歉我不熟悉这个,这是主要原因,因为我问了这个问题:)
  • @Elliott tnx...简单的答案总是最好的。我只是尝试将 post_status 设置为私有,并且效果很好,只有创建帖子的用户才能看到它。

标签: php wordpress post


【解决方案1】:

除非你想对 WordPress 自定义功能进行冗长的修改......听起来你需要这样的东西......

这是我在某处找到的过滤器,用于从非管理员/作者的编辑帖子页面中删除帖子。当我不得不限制某些用户的功能时,我遇到了它。

/*
Show posts only owned by current user
*/
function posts_for_current_author($query) {
    global $pagenow;

    if( 'edit.php' != $pagenow || !$query->is_admin )
        return $query;

    if( !current_user_can( 'manage_options' ) ) {
        global $user_ID;
        $query->set('author', $user_ID );
    }
    return $query;
}
add_filter('pre_get_posts', 'posts_for_current_author');

我不记得我在哪里找到的,如果我找到源代码,我会回来编辑。

【讨论】:

  • 我已经用“私人”帖子状态解决了这个问题,而不是草稿。感谢您的帮助.. tnx
猜你喜欢
  • 2015-01-10
  • 1970-01-01
  • 2014-07-22
  • 2020-11-09
  • 2012-07-03
  • 2018-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多