WordPress Как создать пользовательский (Resume) URL страницы слаг + идентификатор автора слаг - PullRequest
1 голос
/ 10 марта 2019

Я создал шаблон пользовательской страницы (Резюме / CV) для наших пользователей, чтобы отображать их информацию, такую ​​как "аватар, имя, описание ... и т.д.

Я получил информацию о пользователях, используя $current_user = wp_get_current_user();

каждый пользователь, посещая эту страницу, может видеть только свою информацию! Но что, если мне нужно, чтобы эта страница была общедоступной, как и author.php, все пользователи могут видеть резюме / резюме друг друга.

Так что теперь URL-адрес страницы https://www.website.com/resume/

И мне нужно, чтобы эта страница была https://www.website.com/resume/?author=id

Существуют любые варианты получения пользовательских данных вместо $current_user = wp_get_current_user();, чтобы сделать этостраница общедоступна для всех!

Обновление 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();

Я пытаюсь сейчас добавитьhref ссылка внутри author.php но она всегда возвращает страницу, не найденную! Итак, как я могу создать ссылку, принадлежащую идентификатору автора, чтобы любой мог легко увидеть резюме пользователя?

<?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

Обновление 2

author.php file

<?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();

1 Ответ

0 голосов
/ 10 марта 2019

Вы можете проверить, передан ли параметр author, и запросить пользователя на основе идентификатора, переданного в этом параметре.Если параметр не передан, он запросит текущего пользователя, который вошел в систему.

$user = FALSE;
if (!empty($_GET['author']) {
   $user = get_user_by('ID',$_GET['author']);
} else  {
   $user = wp_get_current_user();
}

Вы должны добавить дополнительную проверку, хотя и для проверки, запрашивает ли идентификатор действительного пользователя или посетитель в настоящее время вошел в систему какпользователь.

ОБНОВЛЕНИЕ ОБНОВЛЕНИЯ

Что касается ссылки на резюме текущего пользователя, вы можете сделать следующее:

echo site_url('/resume/?author=' . get_current_user_id());
...