функция since 2.1.0

_walk_bookmarks()

Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.

Сигнатура

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

Описание

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

Оригинал (английский)

The $bookmarks array must contain bookmark objects and will be iterated over to retrieve the bookmark to be used in the output.

The output is formatted as HTML with no way to change that format. However, what is between, before, and after can be changed. The link itself will be HTML.

This function is used internally by wp_list_bookmarks() and should not be used by themes.

Параметры

$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

    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.

    Что будем искать? Например,Продвижение

    Этот сайт использует куки-файлы. Оставаясь на сайте, Вы соглашаетесь на их использование. Для получения дополнительной информации, пожалуйста, ознакомьтесь с политикой в отношении персональных данных.