我是Wordpress插件开发的初学者。我想在我的页面上为一个成员部件编写一个插件。我知道,这个问题的插件是可用的,但我想创建一个自己的插件;)
我想在数据库中创建一个表,如下所示:
ID | PostID | MemberOnly
所以,我正在搜索一个过滤器或操作,我可以使用它。到目前为止,我找到了过滤器“the\\u content”,但我没有得到post\\u ID,或者我忽略了什么?我发现的另一个操作是pre\\u get\\u posts。但是这里有同样的问题,Post\\u ID
有人有主意吗?
您好
编辑:我需要一个可能性,在那里我可以检查用户的登录状态。当我访问一个页面时,我的插件必须检查,访问者是访客还是登录用户。我可以使用哪个过滤器/操作来实现它们。
编辑2:我想为一个成员区写一个插件。例如体育俱乐部。此成员无权访问Wordpress后端的管理区域。它应该是自己的区域。无需编辑,只需查看。
在前端应该是一个“仅限成员”的点。当您单击此按钮时,您将看到一个登录表单(除非您已登录,否则您将看到内容)。在这个区域,你只能看到这个体育俱乐部会员的新闻。
所以,我正在搜索一个操作或过滤器,我可以用来检查的是这个用户是否登录。不可用时->转到登录表单->为真时->查看内容
编辑3:它应该是一个完整的独立成员区域,并且与wp管理成员不耦合。
最合适的回答,由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
能力。如果没有-不允许他们查看管理面板,也不要在前端显示黑色管理栏。