WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Купить персональные IPV4 и IPV6 прокси

get_author_posts_url() WP 2.1.0

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

Является основой для: get_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

Заметки

  • Global. WP_Rewrite. $wp_rewrite

Список изменений

С версии 2.1.0 Введена.

Код get author posts url: wp-includes/author-template.php WP 5.2.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вязанные функции

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

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

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

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

    Ответить4.1 года назад #
    • campusboy3413 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
      Ответить4 года назад #
      • @ Ярослав samodelka.info

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

        Ответить4 года назад #
        • campusboy3413 www.youtube.com/c/wpplus

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

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

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

            Ответить4 года назад #
            • campusboy3413 www.youtube.com/c/wpplus

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

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