当前位置: 首页 > 知识库问答 >
问题:

Wordpress拥有私人/公共职位的安全方式

米迪
2023-03-14

我问了几个问题试图解决这个简单的问题,但似乎没有任何效果。

有私人/公共帖子的推荐方式是什么?我想有一个网站,如果作者/编辑/管理员登录在每个私人帖子和公共帖子是可见/搜索。如果用户未登录,则仅可查看公共帖子。

我想过/尝试过许多方法来做这件事。一个简单的方法,我实现了这种方式,使用WP_Query包括/排除登录/退出时具有自定义字段“私人”的所有帖子。

虽然这工作得很好,但我有两个问题,它的html" target="_blank">安全性如何?它需要一个自定义字段,当Wordpress已经有了私人帖子功能。

我尝试的另一种方式是使用Wordpress内置的私人帖子功能,但我不能让私人帖子出现在前端。它们显示在允许用户的编辑屏幕上,显示在管理员的循环(前端)中,但不显示编辑或作者......

使用wordpress内置函数是我的授权方法,但只是不能让它正常工作。

有什么建议或帮助吗?一定有人这样做而不需要自定义字段?

谢谢

共有2个答案

薛经艺
2023-03-14

我认为在您的情况下,最合适的方法是使用WordPress功能。如果登录,编辑已经能够在前端查看私人帖子/页面(因为他们具有阅读私人帖子功能)。

下面是一个示例,说明如何使私人帖子/页面可由作者用户角色查看。

function so0805_init_theme_add_capabilities(){
    /* allow authors to view private posts and pages */
    $role_author = get_role('author');
    $role_author->add_cap('read_private_pages');
    $role_author->add_cap('read_private_posts');

}
add_action('init', 'so0805_init_theme_add_capabilities');

将此代码粘贴到函数中。php的主题。

卫烨
2023-03-14

您不需要使用元字段来获取私人帖子,它可以在wp查询post_status参数中使用。

$args = array( 'post_status' => array( 'publish' ) ); // regular users
if ( is_user_logged_in() ) {
  // signed in users
  $args['post_status'][] = 'private';
}

$query = new WP_Query( $args);
 类似资料:
  • 问题内容: 将方法标记为程序包专用类是否有所不同? 之间和此处的可见性是否有实际差异? 问题答案: 如果该类不会被另一个更可见的子类扩展,则唯一的区别是 intent的清晰度* 。将所有方法包都声明为私有,使以后的读者更加难以确定同一包中的其他类将调用哪些方法。 作为我的设计解决方案,这没有多大意义,但是从技术上来说还是有可能的。

  • 问题内容: 我当时正在上课,我想到了几个问题。 我注意到,其他类将使用的公共方法调用了一些私有方法来完成所有工作。现在,我知道OOD的原则之一就是尽可能多地私有化并隐藏所有实现细节。我不确定我是否完全理解其背后的逻辑。 我知道将字段设为私有很重要,以防止将无效值存储在字段中(这只是许多原因之一)。但是,对于私有方法,我不确定为什么它们如此重要。 例如,对于类,我们是否不能将所有实现代码都放入公共方

  • 问题内容: 如何在Kotlin中建立一个拥有私有获取者(或没有私有获取者)却拥有公共委托者的财产? 不会出现错误: 就我而言,原因是Java互操作:我希望我的Java代码能够调用,但不能。 问题答案: 目前,在Kotlin中,不可能有一个带有传承人的财产,而不是财产。问题跟踪器中存在语言设计问题,可以随时对其进行观看/投票或分享您的用例:https : //youtrack.jetbrains.c

  • 问题内容: 在Java中,访问修饰符被认为是安全的,因为它在类外部不可见。然后外面的世界也不知道这种方法。 但是我认为Java反射可以用来打破这一规则。考虑以下情况: 现在从另一堂课我将获得信息: 这时我只是觉得私有方法仍然安全,因为要做上面的事情我们必须知道方法名称。但是,如果类包含由其他人编写的私有方法,那么我们将看不到那些。 但是,由于下面的代码行,我的观点变得无效。 现在,它包含了需要做的

  • 为什么不能正确编译?为了测试它,我添加了main方法行,但是我得到了很多错误,说私有构造函数和公共构造函数都是表达式的非法开头,还说它们不是语句。它还要求我在我认为不必要的地方添加分号,因为分号是方法的开始。我不希望任何人为我重新输入代码,但至少有人能给我指出正确的方向,告诉我哪里出了问题吗?

  • 好吧,这一定很容易,我就是搞不懂为什么什么都不管用。 我有一个wordpress主题和3个自定义帖子类型。我想限制对大多数帖子的访问,并允许管理员使一些帖子可供公众查看。我希望它尽可能简单。 我目前拥有的是,我已经将所有帖子设置为默认为private,然后管理员可以进入并将任何他喜欢的帖子设置为“public”,以便未登录的人可以看到它们。 问题是,我无法在fontend上为登录用户显示私人帖子。