我试图寻找一个简单的答案,如果已经有一个帖子可以发送给我,请尽一切可能给我一个链接。
这方面的背景可能不需要,但我觉得提供它将有助于澄清我正在寻找的答案。
来自Drupal的我发现Wordpress方法既相似又非常不同,对于Drupal,我会告诉它页面的名称和回调函数,以显示我希望它显示的内容,我正在尝试使用Wordpress进行开发,但由于我太习惯Drupal的术语和方法,我有时甚至很难处理最简单的事情。
基本上,我想做的是在用户配置文件页面上显示函数的结果。
背景是这样的。
用户有一个日历-它按月显示,因此当打开用户配置文件页面时,日历应该在讨论的日期显示自定义帖子类型(事件)。
我创建了自定义帖子类型,创建了日历,我需要做的就是这样。
当页面加载时,我想抓取被查看者创建的所有“事件”帖子类型。通常情况下,我会通过url抓取用户,因为这样我才能知道查看的是谁的页面。但因为我使用的是wordpress,我知道还有其他获取用户数据的方法。
我想问题是这样的。
在用户配置文件页面上显示自定义数据时,我需要创建一个操作(或一个快捷码),将日历插入页面中,如何知道显示的是哪个配置文件,如何从用户对象(如果WP使用$user对象)获取数据,以便将其作为参数传递给代码,以便获得正确的帖子类型?
我还需要澄清这一点,我没有显示完整的自定义帖子类型,我只需要从数据库中获取它们,这样我就可以循环浏览它们,发现其中哪些帖子的日期与所查看的月份相匹配,并显示每个帖子的标题。
我可以从数据库中读取数据,我可以将其插入日历,我将能够(最终)在配置文件页面上显示(通过操作、过滤器或快捷码),但目前我不知道当前正在查看哪个用户配置文件,以及如何访问给定用户的数据。
提前感谢您提供的任何帮助。
吉姆
最合适的回答,由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您需要钩住这两个操作,因为它们都是在何时触发的逻辑(登录用户配置文件而不是查看另一个用户的配置文件)。
当然,您可以将不同的功能连接到每个操作,例如,如果您想为登录用户显示不同的内容,以查看他们自己的配置文件,而不是查看其他用户的配置文件。
这些钩子唯一不太好的地方是,它们在个人资料页面的底部附近开火,而不是顶部。