是否使用用户角色限制对网站的非WordPress部分的访问? 时间:2012-03-13 作者:Vince Pettit 是否可以使用wordpress安装中未包含的wordpress用户角色限制对页面的访问。例如,我安装了一个CS Cart,只安装了几个产品,但我需要限制某些用户访问这些页面。如果用户只是一个订阅者,我可以在我的CS Cart安装中添加一些东西来调用Wordpress来限制访问吗? 4 个回复 最合适的回答,由SO网友:bueltge 整理而成 如果您可以包括wp-load.php 来自WP安装;之后,您可以使用所有WP核心功能,还可以使用核心功能检查用户及其权限-current_user_can().但如果CS Cart有自己的用户表,那么可能更容易创建从CS Cart到WP的桥梁;我不知道。 SO网友:soulseekah 这当然是可能的,但需要您稍微更改CS Cart。我对CS Cart的内部工作原理不太熟悉,从我对源代码的探索来看(他们实际上让你填写表单下载社区版,bleh),你可能想做这样的事情:$current_working_directory = getcwd(); chdir( \'WORDPRESS_ROOT\' ); // load up require_once \'wp-load.php\'; // possibly with SHORTINIT to reduce load // include wp-includes/capabilities.php if SHORTINIT // include wp-includes/user.php and other dependencies $permission = current_user_can( \'browse_cs_cart_page\' ); chdir( $current_working_directory ); if ( !$permission ) { die( \'You do not have permission to access this page. Please login in my WordPress site before you can proceed to here\' ); } else { // show page } 这可能是插件的一部分。现在current_user_can 将使用WordPress读取的Cookie,并与向用户发布的Cookie进行比较。没有像这样的插件Root Cookie WordPress将无法读取它(虽然,如果您说它位于同一根目录中,并且域相同,那么您应该能够在不处理Cookie的情况下完成它,浏览器应该将它们发送到WordPress和CS Cart,并使用您选择的调试工具进行检查)。SHORTINIT 不是强制性的,但如果您担心性能,应该会稍微提高速度和内存消耗。这一切都相当简单,只需在CS Cart端摆弄几个小时(编写插件,即)。其余的由WordPress负责。祝你好运,让我们知道进展如何。进一步阅读:http://wordpress.org/support/topic/load-wp-core-in-another-framework-shortinit-wp_queryhttp://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/capabilities.php#L839http://docs.cs-cart.com/common.php?dispatch=docs/view&node_name=addonshttp://open-source-experiments.blogspot.com/2009/02/setting-up-common-login-across-multiple.html SO网友:Tom J Nowell 不,这是不可能的,反正也不干净有些乱七八糟的东西可以让你达到一半,但它们很难看,而且很琐碎,浪费时间,时间就是金钱。因此,如果没有真正实现目标,它将是不安全的,建设成本高昂,维护成本高昂。您最好使用一款直接集成到WordPress中的软件,例如电子商务插件,其中大部分都是免费的,并具有许多功能,例如:Jigoshop WooCommerce WP电子商务 SO网友:Asaf Chertkoff 如果你只需要限制到一个特定的WP页面(我想CS cart在其中嵌入了一个[短代码]或其他东西-我不知道CS cart),最好的方法是使用一个角色管理器插件。这个-User Access Manager - 有点过时了,但它可以处理开箱即用的特定页面限制。查看(&P);看看是否合适。 结束 文章导航