我可以将哪个操作/过滤器用于成员插件

时间:2014-12-11 作者:GoatMachine

我是Wordpress插件开发的初学者。我想在我的页面上为一个成员部件编写一个插件。我知道,这个问题的插件是可用的,但我想创建一个自己的插件;)

我想在数据库中创建一个表,如下所示:

ID | PostID | MemberOnly
所以,我正在搜索一个过滤器或操作,我可以使用它。到目前为止,我找到了过滤器“the\\u content”,但我没有得到post\\u ID,或者我忽略了什么?我发现的另一个操作是pre\\u get\\u posts。但是这里有同样的问题,Post\\u ID

有人有主意吗?

您好

编辑:我需要一个可能性,在那里我可以检查用户的登录状态。当我访问一个页面时,我的插件必须检查,访问者是访客还是登录用户。我可以使用哪个过滤器/操作来实现它们。

编辑2:我想为一个成员区写一个插件。例如体育俱乐部。此成员无权访问Wordpress后端的管理区域。它应该是自己的区域。无需编辑,只需查看。

在前端应该是一个“仅限成员”的点。当您单击此按钮时,您将看到一个登录表单(除非您已登录,否则您将看到内容)。在这个区域,你只能看到这个体育俱乐部会员的新闻。

所以,我正在搜索一个操作或过滤器,我可以用来检查的是这个用户是否登录。不可用时->转到登录表单->为真时->查看内容

编辑3:它应该是一个完整的独立成员区域,并且与wp管理成员不耦合。

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

您可以尝试以下操作:

function restricted_access() {
    if( ! is_user_logged_in() ) {
        global $wp_query;
        $wp_query->set_404();
        status_header(404);
    }
}
add_action( \'wp\', \'restricted_access\' );
默认情况下,如果用户未登录,将始终显示404页面。以下两个功能将不让非管理员进入您的管理面板,还将隐藏前端的黑色管理栏。

function redirect_nonadmins(){
    if ( ! current_user_can( \'administrator\' ) ){
        wp_redirect( site_url() );
        exit;       
    }
}
add_action( \'admin_init\', \'redirect_nonadmins\' );

function no_adminbar() { 
    if( ! current_user_can( \'administrator\' ) ) {
        add_filter( \'show_admin_bar\', \'__return_false\' );
    }
}
add_action( \'after_setup_theme\', \'no_adminbar\' );
Edit - 一些解释

功能is_user_logged_in() 返回真/假布尔值True如果用户查看当前页面is 已登录<如果用户查看当前页面,则em>Falseis not 已登录。

功能current_user_can() 将检查当前用户的功能。在上面,我检查当前用户是否administrator 能力。如果没有-不允许他们查看管理面板,也不要在前端显示黑色管理栏。

结束

相关推荐

在加载plugins_后,get_plugins()不工作

知道为什么下面的代码function my_plugin_load() { get_plugins(); } add_action( \'plugins_loaded\', \'my_plugin_load\' ); 抛出此错误?Fatal error: 不应调用未定义的函数get\\u plugins()get_plugins() 定义在plugins_loaded 胡克开火了?如果不是,那么什么才是合适的钩子呢?(这个钩子应该启动插件的引导/加载过程)