在给定用户配置文件页面上显示自定义代码

时间:2016-09-10 作者:JimmyBorofan

我试图寻找一个简单的答案,如果已经有一个帖子可以发送给我,请尽一切可能给我一个链接。

这方面的背景可能不需要,但我觉得提供它将有助于澄清我正在寻找的答案。

来自Drupal的我发现Wordpress方法既相似又非常不同,对于Drupal,我会告诉它页面的名称和回调函数,以显示我希望它显示的内容,我正在尝试使用Wordpress进行开发,但由于我太习惯Drupal的术语和方法,我有时甚至很难处理最简单的事情。

基本上,我想做的是在用户配置文件页面上显示函数的结果。

背景是这样的。

用户有一个日历-它按月显示,因此当打开用户配置文件页面时,日历应该在讨论的日期显示自定义帖子类型(事件)。

我创建了自定义帖子类型,创建了日历,我需要做的就是这样。

当页面加载时,我想抓取被查看者创建的所有“事件”帖子类型。通常情况下,我会通过url抓取用户,因为这样我才能知道查看的是谁的页面。但因为我使用的是wordpress,我知道还有其他获取用户数据的方法。

我想问题是这样的。

在用户配置文件页面上显示自定义数据时,我需要创建一个操作(或一个快捷码),将日历插入页面中,如何知道显示的是哪个配置文件,如何从用户对象(如果WP使用$user对象)获取数据,以便将其作为参数传递给代码,以便获得正确的帖子类型?

我还需要澄清这一点,我没有显示完整的自定义帖子类型,我只需要从数据库中获取它们,这样我就可以循环浏览它们,发现其中哪些帖子的日期与所查看的月份相匹配,并显示每个帖子的标题。

我可以从数据库中读取数据,我可以将其插入日历,我将能够(最终)在配置文件页面上显示(通过操作、过滤器或快捷码),但目前我不知道当前正在查看哪个用户配置文件,以及如何访问给定用户的数据。

提前感谢您提供的任何帮助。

吉姆

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

假设您位于后端(admin),那么用户配置文件页面由/wp-admin/user-edit.php - 有一个全局变量,它指示我们正在查看其配置文件的用户的id。如果您查看user-edit.php 您可以看到它保证(或将终止)变量的存在$user_id 它包含ID,并将从全局对象获取它$current_user, 如果我们有一个登录的用户。

你可以把这个挂到WP上user-edit.php :

function calendar_info( $some_user ) { 
    // we can do something with the $some_user object or we can ignore it...
    global $user_id;   // user id of the profile currently being displayed/edited
       echo get_calendar_data( $user_id );
}
add_action(\'show_user_profile\', \'calendar_info\');  // only fires when viewing currently logged-in user\'s profile page
add_action(\'edit_user_profile\', \'calendar_info\');  // only fires when viewing another user\'s profile page
那些钩子穿过currently logged-in user object

您需要钩住这两个操作,因为它们都是在何时触发的逻辑(登录用户配置文件而不是查看另一个用户的配置文件)。

当然,您可以将不同的功能连接到每个操作,例如,如果您想为登录用户显示不同的内容,以查看他们自己的配置文件,而不是查看其他用户的配置文件。

这些钩子唯一不太好的地方是,它们在个人资料页面的底部附近开火,而不是顶部。

相关推荐

Client Profiles

正在寻找创建客户机数据库的最佳方法。插件能最好地实现以下功能吗?我的客户端数据库插件存储有关客户端的个人信息和统计信息,这些信息和统计信息将通过自定义字段和自定义表单收集,管理员创建客户端配置文件后,仪表板选项卡将打开列表区域(类似于用户选项卡)(仅限管理员)“添加新”功能(类似于仪表板的用户区域)。管理员可以将客户端分配给用户,分配给用户的客户端显示为用户元数据。分配给用户的客户端将在用户配置文件中可见,仪表板小部件显示为登录用户分配的客户端,并带有指向客户端配置文件页面的链接。插件是解决此问题的解决方