WordPress как на ладони
WordPress темы и плагины за 250 рублей wordpress jino

get_author_posts_url() WP 2.1.0

Получает УРЛ (ссылку) на архивную страницу автора (страница с постами пользователя).

Используется в: the_author_posts_link().
Хуки из функции:

Использование

get_author_posts_url( $author_id, $author_nicename );
$author_id(число) (обязательный)
ID автора, УРЛ на страницу которого нужно получить.
$author_nicename(строка)
Универсальное имя автора, УРЛ на страницу которого нужно получить. Указывать этот параметр выгодно для упрощения работы функции, так как функции не нужно будет получать Ник автора по переданному ID.
По умолчанию: ''

Примеры

#1 Получим ссылку на страницу с постами автора 5, никнейм которого "pisaka":

$author_url = get_author_posts_url( 5, 'batmen' );
echo $author_url;

// Выведет: http://wp-kama.ru/author/batmen

Код get author posts url: wp-includes/author-template.php VER 4.9.6

<?php
function get_author_posts_url( $author_id, $author_nicename = '' ) {
	global $wp_rewrite;
	$auth_ID = (int) $author_id;
	$link = $wp_rewrite->get_author_permastruct();

	if ( empty($link) ) {
		$file = home_url( '/' );
		$link = $file . '?author=' . $auth_ID;
	} else {
		if ( '' == $author_nicename ) {
			$user = get_userdata($author_id);
			if ( !empty($user->user_nicename) )
				$author_nicename = $user->user_nicename;
		}
		$link = str_replace('%author%', $author_nicename, $link);
		$link = home_url( user_trailingslashit( $link ) );
	}

	/**
	 * Filters the URL to the author's page.
	 *
	 * @since 2.1.0
	 *
	 * @param string $link            The URL to the author's page.
	 * @param int    $author_id       The author's id.
	 * @param string $author_nicename The author's nice name.
	 */
	$link = apply_filters( 'author_link', $link, $author_id, $author_nicename );

	return $link;
}

Cвязанные функции

Из раздела: Остальное

Еще из тегов шаблона: Авторы

6 комментов
  • @ Ярослав cайт: samodelka.info

    Здравствуйте. У меня вопрос: как на странице пользователя в админке сделать "юзербар" для форумов т.е. необходимо формировать ссылку на архив записей "залогиненного" пользователя без указания конкретного имени. Что бы каждый мог просто скопировать Html код для вставки в подпись на любимых форумах.
    Спасибо!

    Ответить2.9 года назад #
    • campusboy2799 cайт: www.youtube.com/c/wpplus

      Не уверен, что понял затею, но вот как-то так:

      <?php
      function show_profile_fields( $user ) {
      global $profileuser;
      $author_archive_url = get_author_posts_url($profileuser->ID);
      ?>
      <h3>Ссылки для форумов в формате bb</h3>
      <p>Простая ссылка:
      <input type="text" value='[url]<?php echo $author_archive_url; ?>[/url]' onclick = "this.select();" size="100"></p>
      <p>Ссылка с анкором:
      <input type="text" value='[url="<?php echo $author_archive_url; ?>"]Читайте мои статьи[/url]' onclick = "this.select();" size="100"></p>
      <?php }
      add_action( 'show_user_profile', 'show_profile_fields' );
      add_action( 'edit_user_profile', 'show_profile_fields' );
      ?>

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

      1
      Ответить2.9 года назад #
      • @ Ярослав cайт: samodelka.info

        2campusboy Подскажите куда необходимо вставлять этот код? Пробовал в functions.php и author.php результат нулевой ни каких полей не добавилось (тема twenty ten)

        Ответить2.9 года назад #
        • campusboy2799 cайт: www.youtube.com/c/wpplus

          У меня в functions.php вставлено и отображается. Выслал на почту скриншоты подтверждения.

          1
          Ответить2.9 года назад #
          • @ Ярослав cайт: samodelka.info

            Спасибо! после подключения файла по Вашим скриншотам- все действительно заработало!

            Ответить2.9 года назад #
            • campusboy2799 cайт: www.youtube.com/c/wpplus

              Не знаю, почему у Вас изначально не получилось, сейчас поставил тему twenty ten, залез в functions.php и вставил в самый конец + добавил после ?>, почему-то разработчики любят его в конце не ставить, это не вызывает по идее ошибок, но я всегда ставлю для порядка.

              Ответить2.9 года назад #
Здравствуйте, !     Войти . Зарегистрироваться