get_archives_link()WP 1.0.0

Получает ссылку архивной страницы. Собирает ссылку из переданных: УРЛ, анкор ссылки, формат вывода, текст до и после.

Это вспомогательная функцию, которая собирает HTML тег ссылки, в указанном в параметре $format формате:

Текст обрабатывается фильтрами: wptexturize() и esc_attr(), а ссылка esc_url() и результате мы получим очищенный текст, даже если в функцию передать некорректные символы.

Хуки из функции

Возвращает

Строку. HTML тег А.

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

get_archives_link( $url, $text, $format, $before, $after );
$url(строка) (обязательный)
Ссылка URL: http://example.com/2013.
$text(строка) (обязательный)
Анкор ссылки ( описание ссылки, текст который будет показан как ссылка ).
$format(строка)

В каком формате выводить ссылку:

  • html - для использования в списках: ul или ol;
  • link - для использования в head части HTML кода;
  • option - для использования в элементах формы select;
  • custom - другой формат, оставьте это поле пустым и используйте параметры before и after.

По умолчанию: html

$before(строка)
Текст до ссылки, можно указывать HTML код.
По умолчанию: ''
$after(строка)
Текст после ссылки, можно указывать HTML код.
По умолчанию: ''

Примеры

0

#1 Примеры показывающие что возвращает функция:

echo get_archives_link( '/2013', 'Архив за 2013 год' );
// вернет: <li><a href='/2013' title='Архив за 2013 год'>Архив за 2013 год</a></li>

get_archives_link( '/2013', 'Архив за 2013 год', 'link' );
// <link rel='archives' title='Архив за 2013 год' href='/2013' />

get_archives_link( '/2013', 'Архив за 2013 год', 'option' );
// <option value='/2013'> Архив за 2013 год </option>

get_archives_link( '/2013', 'Архив за 2013 год', '', '<div>','</div>' );
// <div><a href='/2013' title='Архив за 2013 год'>Архив за 2013 год</a></div>
0

#2 Обернем кол-во постов в виджете архива в HTML

Добавим <span> вокруг количества постов в виджете архива. Это позволяет легко стилизовать количество постов.

add_filter( 'get_archives_link', 'wpdocs_archive_count_span' );

/**
 * Adds a span around post counts in the archive widget.
 *
 * @param   string  $links      The comment fields.
 * @return  string
 */
function wpdocs_archive_count_span( $links ) {

	$links = str_replace( '</a> (', '<span class="count">', $links );
	$links = str_replace( ')', '</span></a>', $links );

	return $links;
}

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

С версии 1.0.0 Введена.
С версии 5.2.0 Added the $selected parameter.

Код get_archives_link() WP 6.7.1

function get_archives_link( $url, $text, $format = 'html', $before = '', $after = '', $selected = false ) {
	$text         = wptexturize( $text );
	$url          = esc_url( $url );
	$aria_current = $selected ? ' aria-current="page"' : '';

	if ( 'link' === $format ) {
		$link_html = "\t<link rel='archives' title='" . esc_attr( $text ) . "' href='$url' />\n";
	} elseif ( 'option' === $format ) {
		$selected_attr = $selected ? " selected='selected'" : '';
		$link_html     = "\t<option value='$url'$selected_attr>$before $text $after</option>\n";
	} elseif ( 'html' === $format ) {
		$link_html = "\t<li>$before<a href='$url'$aria_current>$text</a>$after</li>\n";
	} else { // Custom.
		$link_html = "\t$before<a href='$url'$aria_current>$text</a>$after\n";
	}

	/**
	 * Filters the archive link content.
	 *
	 * @since 2.6.0
	 * @since 4.5.0 Added the `$url`, `$text`, `$format`, `$before`, and `$after` parameters.
	 * @since 5.2.0 Added the `$selected` parameter.
	 *
	 * @param string $link_html The archive HTML link content.
	 * @param string $url       URL to archive.
	 * @param string $text      Archive text description.
	 * @param string $format    Link format. Can be 'link', 'option', 'html', or custom.
	 * @param string $before    Content to prepend to the description.
	 * @param string $after     Content to append to the description.
	 * @param bool   $selected  True if the current page is the selected archive.
	 */
	return apply_filters( 'get_archives_link', $link_html, $url, $text, $format, $before, $after, $selected );
}