我正在创建一个插件,用户可以下载文件。目前,我显示下载链接如下:
<a href="plugin/directory/some/path/download.php?file_to_download_id=1">Some Download</a>我需要在is_user_logged_in()或get_current_user_id()的download.php中使用wordpress核心功能。如何在这个php文件中使用这些函数?
(PS:我不想在download.php中包括wp-load )
发布于 2017-11-15 16:00:52
WordPress提供了几个跟踪用户是否登录以及用户ID是什么的cookie。这些在这一页在法典中上都有描述:
登录后,wordpress设置wordpress_logged_in_哈希 cookie,它指示您何时登录,以及您是谁,供大多数接口使用。WordPress还设置了一些wp-设置-{time}-UIDcookie。最后的数字是用户数据库表中的个人用户ID。这是用于自定义您的管理界面视图,也可能是主站点界面。
如果您绝对必须避免将wp-load.php加载到download.php文件中,则可以使用$_COOKIE全局检查文件中是否存在这些cookie,并解析wp-settings-{time}-[UID] cookie以获取用户ID ("UID")。
老实说,我认为与仅在download.php文件的顶部包括以下两行相比,这是一种浪费:
define( 'WP_USE_THEMES', false );
require( './wp-load.php' ); 这将不会加载任何主题文件或模板函数,但将立即允许您访问您正在寻找的核心WordPress函数。我会鼓励你尝试这两种方式(如果你是如此的倾向),并看到性能差异.它不会太多,特别是在运行PHP7的服务器上。
发布于 2017-11-14 07:11:09
正如您已经提到的,该文件位于您的plugins文件夹中,您不需要在这里添加wp-load.php文件,以防您无法使用默认的WordPress函数。您需要从插件的主PHP文件中包含该文件。
希望这能解决您的查询。
https://wordpress.stackexchange.com/questions/285807
复制相似问题