我已经返回了注册用户列表。我希望能够查询这些结果,并生成点击页面。这可能。
我试图通过搜索(例如名字)来获取用户列表,然后在前端点击以显示有关用户的信息。它主要是点击通过im有困难。
例如,如果我可以点击一个成员,它将进入一个具有用户名,姓氏等的页面。
<?php
$blogusers = get_users();
// Array of WP_User objects.
foreach ( $blogusers as $user ) {
if ( in_array( 'team_member', (array) $user->roles ) ) {
?>
<div class="member_user">
<a href="<?php echo the_permalink();?>">
<?php
echo $user->first_name." ".$user->last_name;
?>
</a>
</div>
<?php
}
}
?>
答案 0 :(得分:1)
两个半接近:
您可以自定义主题的作者存档模板以显示所需的信息。模板层次结构中提供了三个作者档案:
您可以为每个用户链接到https:// {site_url} / author / {username}。
您可以使用register_post_type()手动注册该自定义帖子类型,或者如果您需要帮助,则可以Custom Post Type UI添加一个好的插件。
您的函数挂钩的好动作是user_register,因为它在用户注册后立即发生,但可以访问用户数据。在您的功能中,您可以使用wp_insert_post()创建新帖子。
然后,您可以使用archive-$posttype.php
和single-$posttype.php
模板显示该自定义帖子类型的信息。
2 1/2。您也可以考虑仅使用 自定义帖子类型,而不是根本不查询用户。如果这个成员资料是一些人是用户的唯一原因,这种方式甚至可能更方便。然后,您可以轻松使用archive-$posttype.php
和single-$posttype.php
模板来显示您选择的信息。
答案 1 :(得分:1)
我会生成这样的链接:
<?php
echo $user->first_name." ".$user->last_name;
echo '<a href="user-profile?user_id=' . $user->id . '">view user</a>';
?>
然后在下一页上查询用户ID以获取所需信息。
在下一页上,您可以:
<?php
$user_ID = $_GET['user_id'];
get_header();
?>
然后查询此内容以获取与该用户相关的任何内容
答案 2 :(得分:1)
如果我理解正确,您已经有了一个用户列表,并且您希望每个用户都可以链接到自己的页面,您可以在其中显示所需的信息,例如名字,姓氏等。 / p>
首先,您必须查询用户并循环浏览以在列表中显示它们。您已经在代码中使用了这个,但如果您想要更高级的内容,查询将如下所示:
$authors = get_users(array(
'role__not_in' => array('Subscriber', 'Administrator'),
//if you do not want to list the admins and subscribers
'orderby' => array(
'post_count' => 'DESC',
//order users by post count (how many posts they have)
)
));
foreach ($authors as &$author){
//loop through the users
$user_info = get_userdata($author->ID);
$user_link = get_author_posts_url($author->ID);
?>
<a href="<?php echo $user_link; ?>" style="display:block;">
<?php echo $user_info->first_name.' '.$user_info->last_name; ?>
</a>
<?php
}
然后您需要为用户创建页面。 WordPress通过 author.php 页面处理此问题。如果您的主题没有,请创建一个名为author.php的php文件,并将其放在主题的根文件夹中。
您可以修改 author.php 以包含所需的数据。但是,如果您删除默认情况下为所选用户显示的帖子列表,您将在主题中删除此功能。
所以在author.php中你可能会像这样得到用户:
//get current user (object):
$current_author = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
//get User data by user ID
$user_info = get_userdata($current_author->ID);
//echo first & last name:
echo $user_info->first_name.' '.$user_info->last_name;
如果您制作print_r($user_info)
,您可能会看到可以为所选用户显示的信息。
您也可以使用'get_the_author_meta'
功能从用户的个人资料中获取更多信息,例如
get_the_author_meta('description', $current_author->ID);
您可以在此处找到有关此功能的更多信息:https://developer.wordpress.org/reference/functions/get_the_author_meta/
答案 3 :(得分:0)
有一个功能。使用get_author_posts_url()
在所需模板中,使用以下代码:
// only return required user based on role
$args = array(
'role' => 'team_member'
);
$blogusers = get_users( $args );
// loop though and create output
foreach ( $blogusers as $user ) : ?>
<div class="member_user">
<a href="<?php echo get_author_posts_url( $user->ID );?>"> // links to author page
<?php echo $user->first_name." ".$user->last_name; ?>
</a>
</div>
<?php endforeach;
然后,您需要自定义主题中的author.php
模板,以便根据需要进行渲染。