WordPress 如何创建自定义(简历)页面 url slug + author id slug
WordPress How to create custom (Resume) page url slug + author id slug
我已经为我们的用户创建了自定义页面(简历/简历)模板,以显示他们的信息,如“头像、姓名、描述……等
我通过$current_user = wp_get_current_user();
获取了用户信息
每个用户在访问本页面时只能看到自己的信息!但是,如果我需要此页面 public 与 author.php
相同怎么办,所有用户都可以看到彼此的 resume/cv。
所以现在页面 URL 是 https://www.website.com/resume/
我需要这个页面 https://www.website.com/resume/?author=id
有任何选项可以获取用户数据而不是 $current_user = wp_get_current_user();
来为所有人制作此页面 public!
Update 1
简历页面模板
<?php
/**
* Template Name: Resume Page
*/
$user = FALSE;
if (!empty($_GET['author'])) {
$user = get_user_by('ID',$_GET['author']);
} else {
$user = wp_get_current_user();
}
get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<div class="pic"><?php echo get_avatar( $user->ID, 200 ); ?></div>
<span class="first-name"><?php echo $user->display_name; ?></span>
<span class="subtitle"><?php echo $user->profession; ?></span>
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_sidebar();
get_footer();
我正在尝试在 author.php
中添加 href link,但总是找不到 return 页面!
那么如何创建属于作者id的link才能让任何人都容易看到该用户的简历呢?
<?php
if ( is_user_logged_in() ):
echo '<div class="user-resume">';
echo "<a href=\"".get_bloginfo('url')."/resume/?author=";
echo $curauth->ID;
echo "\">";
echo "See full resume";
echo "</a>";
echo "</div>";
endif;
?>
我想做的是 https://www.website.com/resume/?author=id
Update 2
author.php
文件
<?php get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
$curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
?>
<?php echo $curauth->first_name .' '. $curauth->last_name; ?>
<?php echo get_avatar( $curauth->ID, 200 ); ?>
// and so on...
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_sidebar();
get_footer();
您可以检查是否传递了 author 参数,并根据传递给该参数的 ID 查询用户。如果不传参数,则查询当前登录的用户。
$user = FALSE;
if (!empty($_GET['author']) {
$user = get_user_by('ID',$_GET['author']);
} else {
$user = wp_get_current_user();
}
不过,您应该添加更多验证,以检查 ID 是否查询有效用户或访问者当前是否以用户身份登录。
更新更新
至于link到当前用户的简历,您可以这样做:
echo site_url('/resume/?author=' . get_current_user_id());
我已经为我们的用户创建了自定义页面(简历/简历)模板,以显示他们的信息,如“头像、姓名、描述……等
我通过$current_user = wp_get_current_user();
每个用户在访问本页面时只能看到自己的信息!但是,如果我需要此页面 public 与 author.php
相同怎么办,所有用户都可以看到彼此的 resume/cv。
所以现在页面 URL 是 https://www.website.com/resume/
我需要这个页面 https://www.website.com/resume/?author=id
有任何选项可以获取用户数据而不是 $current_user = wp_get_current_user();
来为所有人制作此页面 public!
Update 1
简历页面模板
<?php
/**
* Template Name: Resume Page
*/
$user = FALSE;
if (!empty($_GET['author'])) {
$user = get_user_by('ID',$_GET['author']);
} else {
$user = wp_get_current_user();
}
get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<div class="pic"><?php echo get_avatar( $user->ID, 200 ); ?></div>
<span class="first-name"><?php echo $user->display_name; ?></span>
<span class="subtitle"><?php echo $user->profession; ?></span>
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_sidebar();
get_footer();
我正在尝试在 author.php
中添加 href link,但总是找不到 return 页面!
那么如何创建属于作者id的link才能让任何人都容易看到该用户的简历呢?
<?php
if ( is_user_logged_in() ):
echo '<div class="user-resume">';
echo "<a href=\"".get_bloginfo('url')."/resume/?author=";
echo $curauth->ID;
echo "\">";
echo "See full resume";
echo "</a>";
echo "</div>";
endif;
?>
我想做的是 https://www.website.com/resume/?author=id
Update 2
author.php
文件
<?php get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
$curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
?>
<?php echo $curauth->first_name .' '. $curauth->last_name; ?>
<?php echo get_avatar( $curauth->ID, 200 ); ?>
// and so on...
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_sidebar();
get_footer();
您可以检查是否传递了 author 参数,并根据传递给该参数的 ID 查询用户。如果不传参数,则查询当前登录的用户。
$user = FALSE;
if (!empty($_GET['author']) {
$user = get_user_by('ID',$_GET['author']);
} else {
$user = wp_get_current_user();
}
不过,您应该添加更多验证,以检查 ID 是否查询有效用户或访问者当前是否以用户身份登录。
更新更新
至于link到当前用户的简历,您可以这样做:
echo site_url('/resume/?author=' . get_current_user_id());