# _walk_bookmarks()

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

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

## Сигнатура

```php
_walk_bookmarks( array $bookmarks, string|array $args = '' ): string
```

## Описание

Массив $bookmarks должен содержать объекты закладок и будет перебираться для получения закладки, используемой в выводе.
Вывод форматируется как HTML, и изменить этот формат нельзя. Однако можно изменить то, что находится между, до и после. Сама ссылка будет в формате HTML.
Эта функция используется внутренне в wp_list_bookmarks() и не должна использоваться темами.

## Параметры

- `$bookmarks` `array` — обязательный. Список закладок для перебора.
- `$args` `string|array` — необязательный, по умолчанию `''`. Аргументы закладок.
  
  show_updated int|boolПоказывать ли время последнего обновления закладки.
  
  Принимает 1|true или 0|false. По умолчанию 0|false.
  
  show_description int|boolПоказывать ли описание закладки. Принимает 1|true, Принимает 1|true или 0|false. По умолчанию 0|false.
  
  show_images int|boolПоказывать ли изображение ссылки, если оно доступно. Принимает 1|true или 0|false. По умолчанию 1|true.
  
  show_name int|boolПоказывать ли имя ссылки, если оно доступно. Принимает 1|true или 0|false. По умолчанию 0|false.
  
  before stringHTML или текст, добавляемый перед каждой закладкой. По умолчанию
  - .
  
  after stringHTML или текст, добавляемый после каждой закладки. По умолчанию .
  
  link_before stringHTML или текст, добавляемый перед каждой закладкой внутри тегов ссылки.
  
  link_after stringHTML или текст, добавляемый после каждой закладки внутри тегов ссылки.
  
  between stringСтрока для использования между ссылкой, описанием и изображением.
  
  По умолчанию "n".
  
  show_rating int|boolПоказывать ли рейтинг ссылки. Принимает 1|true или 0|false.
  
  По умолчанию 0|false.

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

`string`

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

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

```php
function _walk_bookmarks( $bookmarks, $args = '' ) {
	$defaults = array(
		'show_updated'     => 0,
		'show_description' => 0,
		'show_images'      => 1,
		'show_name'        => 0,
		'before'           => '<li>',
		'after'            => '</li>',
		'between'          => "\n",
		'show_rating'      => 0,
		'link_before'      => '',
		'link_after'       => '',
	);

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

	$output = ''; // Blank string to start with.

	foreach ( (array) $bookmarks as $bookmark ) {
		if ( ! isset( $bookmark->recently_updated ) ) {
			$bookmark->recently_updated = false;
		}
		$output .= $parsed_args['before'];
		if ( $parsed_args['show_updated'] && $bookmark->recently_updated ) {
			$output .= '<em>';
		}
		$the_link = '#';
		if ( ! empty( $bookmark->link_url ) ) {
			$the_link = esc_url( $bookmark->link_url );
		}
		$desc  = esc_attr( sanitize_bookmark_field( 'link_description', $bookmark->link_description, $bookmark->link_id, 'display' ) );
		$name  = esc_attr( sanitize_bookmark_field( 'link_name', $bookmark->link_name, $bookmark->link_id, 'display' ) );
		$title = $desc;

		if ( $parsed_args['show_updated'] ) {
			if ( ! str_starts_with( $bookmark->link_updated_f, '00' ) ) {
				$title .= ' (';
				$title .= sprintf(
					/* translators: %s: Date and time of last update. */
					__( 'Last updated: %s' ),
					gmdate(
						get_option( 'links_updated_date_format' ),
						$bookmark->link_updated_f + (int) ( (float) get_option( 'gmt_offset' ) * HOUR_IN_SECONDS )
					)
				);
				$title .= ')';
			}
		}
		$alt = ' alt="' . $name . ( $parsed_args['show_description'] ? ' ' . $title : '' ) . '"';

		if ( '' !== $title ) {
			$title = ' title="' . $title . '"';
		}
		$rel = $bookmark->link_rel;

		$target = $bookmark->link_target;
		if ( '' !== $target ) {
			$target = ' target="' . $target . '"';
		}

		if ( '' !== $rel ) {
			$rel = ' rel="' . esc_attr( $rel ) . '"';
		}

		$output .= '<a href="' . $the_link . '"' . $rel . $title . $target . '>';

		$output .= $parsed_args['link_before'];

		if ( '' !== $bookmark->link_image && $parsed_args['show_images'] ) {
			if ( str_starts_with( $bookmark->link_image, 'http' ) ) {
				$output .= '<img src="' . $bookmark->link_image . '"' . $alt . $title . ' />';
			} else { // If it's a relative path.
				$output .= '<img src="' . get_option( 'siteurl' ) . $bookmark->link_image . '"' . $alt . $title . ' />';
			}
			if ( $parsed_args['show_name'] ) {
				$output .= " $name";
			}
		} else {
			$output .= $name;
		}

		$output .= $parsed_args['link_after'];

		$output .= '</a>';

		if ( $parsed_args['show_updated'] && $bookmark->recently_updated ) {
			$output .= '</em>';
		}

		if ( $parsed_args['show_description'] && '' !== $desc ) {
			$output .= $parsed_args['between'] . $desc;
		}

		if ( $parsed_args['show_rating'] ) {
			$output .= $parsed_args['between'] . sanitize_bookmark_field(
				'link_rating',
				$bookmark->link_rating,
				$bookmark->link_id,
				'display'
			);
		}
		$output .= $parsed_args['after'] . "\n";
	} // End while.

	return $output;
}
```

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

- 2.1.0 — Introduced.

## Связанные

Использует: [`sanitize_bookmark_field`](https://chugunov.pro/api-wordpress/functions/sanitize_bookmark_field/), [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`esc_url`](https://chugunov.pro/api-wordpress/functions/esc_url/), [`esc_attr`](https://chugunov.pro/api-wordpress/functions/esc_attr/), [`wp_parse_args`](https://chugunov.pro/api-wordpress/functions/wp_parse_args/), [`get_option`](https://chugunov.pro/api-wordpress/functions/get_option/).
Используется в: [`wp_list_bookmarks`](https://chugunov.pro/api-wordpress/functions/wp_list_bookmarks/).

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