WordPress как на ладони
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, "pisaka");
echo $author_url;

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

Код get author posts url: wp-includes/author-template.php WP 4.8.2

<?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вязанные функции

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

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

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

    Ответить2.3 года назад #
    • campusboy1848 cайт: wp-plus.ru

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

      <?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.2 года назад #
      • Ярослав cайт: samodelka.info @

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

        Ответить2.2 года назад #
        • campusboy1848 cайт: wp-plus.ru

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

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

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

            Ответить2.2 года назад #
            • campusboy1848 cайт: wp-plus.ru

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

              Ответить2.2 года назад #

Здравствуйте, !

Ваш комментарий