# wp_list_bookmarks()

URL: https://chugunov.pro/api-wordpress/functions/wp_list_bookmarks/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.1.0.

## Сигнатура

```php
wp_list_bookmarks( string|array $args = '' ): void|string
```

## Описание

Список аргументов по умолчанию приведён ниже:
Эти опции определяют, как будет отображаться название категории перед выводом ссылок категории, если 'categorize' равно 1. Если 'categorize' равно 0, то оно будет отображаться только для строки 'title_li' и только если 'title_li' не пусто.
См. also_walk_bookmarks()

## Параметры

- `$args` `string|array` — необязательный, по умолчанию `''`. Строка или массив аргументов для вывода списка закладок.
  
  orderby stringКак упорядочивать ссылки. Принимает поля записи. По умолчанию 'name'.
  
  order stringУпорядочивать закладки по возрастанию или убыванию.
  
  Принимает 'ASC' (по возрастанию) или 'DESC' (по убыванию). По умолчанию 'ASC'.
  
  limit intКоличество отображаемых закладок. Принимает 1+ или -1 для всех.
  
  По умолчанию -1.
  
  category stringСписок ID категорий, ссылки из которых нужно включить, разделённых запятыми.
  
  category_name stringКатегория, ссылки для которой нужно получить, по имени.
  
  hide_invisible int|boolПоказывать или скрывать ссылки, помеченные как 'invisible'. Принимает 1|true или 0|false. По умолчанию 1|true.
  
  show_updated int|boolОтображать ли время последнего обновления закладки.
  
  Принимает 1|true или 0|false. По умолчанию 0|false.
  
  echo int|boolВыводить или возвращать отформатированные закладки. Принимает 1|true (вывод) или 0|false (возврат). По умолчанию 1|true.
  
  categorize int|boolПоказывать ссылки сгруппированными по категориям или в одну колонку.
  
  Принимает 1|true (по категориям) или 0|false (одна колонка). По умолчанию 1|true.
  
  show_description int|boolПоказывать ли описания закладок. Принимает 1|true или 0|false.
  
  По умолчанию 0|false.
  
  title_li stringЧто показывать перед появлением ссылок. По умолчанию 'Bookmarks'.
  
  title_before stringHTML или текст, добавляемый перед строкой $title_li. По умолчанию .
  
  title_after stringHTML или текст, добавляемый после строки $title_li. По умолчанию
  .
  
  class string|arrayCSS-класс или массив классов для использования в $title_li.
  
  По умолчанию 'linkcat'.
  
  category_before stringHTML или текст, добавляемый перед $title_before, если $categorize равно true.
  
  Строка должна содержать '%id' и '%class', чтобы унаследовать ID категории и аргумент $class, используемый для форматирования в темах.
  
  По умолчанию
  - .
  
  category_after stringHTML или текст, добавляемый после $title_after, если $categorize равно true.
  
  По умолчанию .
  
  category_orderby stringКак упорядочивать категорию закладок на основе схемы термина, если $categorize равно true. По умолчанию 'name'.
  
  category_order stringУпорядочивать категории по возрастанию или убыванию, если $categorize равно true. Принимает 'ASC' (по возрастанию) или 'DESC' (по убыванию).
  
  По умолчанию 'ASC'.

## Возвращаемое значение

`void|string` — 'echo' 'echo'

## Исходный код

Файл: `wp-includes/bookmark-template.php:211`

```php
function wp_list_bookmarks( $args = '' ) {
	$defaults = array(
		'orderby'          => 'name',
		'order'            => 'ASC',
		'limit'            => -1,
		'category'         => '',
		'exclude_category' => '',
		'category_name'    => '',
		'hide_invisible'   => 1,
		'show_updated'     => 0,
		'echo'             => 1,
		'categorize'       => 1,
		'title_li'         => __( 'Bookmarks' ),
		'title_before'     => '<h2>',
		'title_after'      => '</h2>',
		'category_orderby' => 'name',
		'category_order'   => 'ASC',
		'class'            => 'linkcat',
		'category_before'  => '<li id="%id" class="%class">',
		'category_after'   => '</li>',
	);

	$parsed_args = wp_parse_args( $args, $defaults );

	$output = '';

	if ( ! is_array( $parsed_args['class'] ) ) {
		$parsed_args['class'] = explode( ' ', $parsed_args['class'] );
	}
	$parsed_args['class'] = array_map( 'sanitize_html_class', $parsed_args['class'] );
	$parsed_args['class'] = trim( implode( ' ', $parsed_args['class'] ) );

	if ( $parsed_args['categorize'] ) {
		$cats = get_terms(
			array(
				'taxonomy'     => 'link_category',
				'name__like'   => $parsed_args['category_name'],
				'include'      => $parsed_args['category'],
				'exclude'      => $parsed_args['exclude_category'],
				'orderby'      => $parsed_args['category_orderby'],
				'order'        => $parsed_args['category_order'],
				'hierarchical' => 0,
			)
		);
		if ( empty( $cats ) ) {
			$parsed_args['categorize'] = false;
		}
	}

	if ( $parsed_args['categorize'] ) {
		// Split the bookmarks into ul's for each category.
		foreach ( (array) $cats as $cat ) {
			$params    = array_merge( $parsed_args, array( 'category' => $cat->term_id ) );
			$bookmarks = get_bookmarks( $params );
			if ( empty( $bookmarks ) ) {
				continue;
			}
			$output .= str_replace(
				array( '%id', '%class' ),
				array( "linkcat-$cat->term_id", $parsed_args['class'] ),
				$parsed_args['category_before']
			);
			/**
			 * Filters the category name.
			 *
			 * @since 2.2.0
			 *
			 * @param string $cat_name The category name.
			 */
			$catname = apply_filters( 'link_category', $cat->name );

			$output .= $parsed_args['title_before'];
			$output .= $catname;
			$output .= $parsed_args['title_after'];
			$output .= "\n\t<ul class='xoxo blogroll'>\n";
			$output .= _walk_bookmarks( $bookmarks, $parsed_args );
			$output .= "\n\t</ul>\n";
			$output .= $parsed_args['category_after'] . "\n";
		}
	} else {
		// Output one single list using title_li for the title.
		$bookmarks = get_bookmarks( $parsed_args );

		if ( ! empty( $bookmarks ) ) {
			if ( ! empty( $parsed_args['title_li'] ) ) {
				$output .= str_replace(
					array( '%id', '%class' ),
					array( 'linkcat-' . $parsed_args['category'], $parsed_args['class'] ),
					$parsed_args['category_before']
				);
				$output .= $parsed_args['title_before'];
				$output .= $parsed_args['title_li'];
				$output .= $parsed_args['title_after'];
				$output .= "\n\t<ul class='xoxo blogroll'>\n";
				$output .= _walk_bookmarks( $bookmarks, $parsed_args );
				$output .= "\n\t</ul>\n";
				$output .= $parsed_args['category_after'] . "\n";
			} else {
				$output .= _walk_bookmarks( $bookmarks, $parsed_args );
			}
		}
	}

	/**
	 * Filters the bookmarks list before it is echoed or returned.
	 *
	 * @since 2.5.0
	 *
	 * @param string $html The HTML list of bookmarks.
	 */
	$html = apply_filters( 'wp_list_bookmarks', $output );

	if ( $parsed_args['echo'] ) {
		echo $html;
	} else {
		return $html;
	}
}
```

## История изменений

- 2.1.0 — Introduced.

## Связанные

Использует: [`get_terms`](https://chugunov.pro/api-wordpress/functions/get_terms/), [`_walk_bookmarks`](https://chugunov.pro/api-wordpress/functions/_walk_bookmarks/), [`get_bookmarks`](https://chugunov.pro/api-wordpress/functions/get_bookmarks/), [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`wp_parse_args`](https://chugunov.pro/api-wordpress/functions/wp_parse_args/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/).
Используется в: [`wp_get_links`](https://chugunov.pro/api-wordpress/functions/wp_get_links/), [`wp_get_linksbyname`](https://chugunov.pro/api-wordpress/functions/wp_get_linksbyname/), `WP_Widget_Links::widget`.

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_list_bookmarks/
