返回介绍

_walk_bookmarks()

发布于 2017-09-11 13:39:01 字数 6441 浏览 864 评论 0 收藏 0

Alert: This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness.

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

The formatted output of a list of bookmarks.


description

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) (Required) List of bookmarks to traverse.

$args

(string|array) (Optional) Bookmarks arguments.

  • 'show_updated'
    (int|bool) Whether to show the time the bookmark was last updated. Accepts 1|true or 0|false. Default 0|false.
  • 'show_description'
    (int|bool) Whether to show the bookmakr description. Accepts 1|true, Accepts 1|true or 0|false. Default 0|false.
  • 'show_images'
    (int|bool) Whether to show the link image if available. Accepts 1|true or 0|false. Default 1|true.
  • 'show_name'
    (int|bool) Whether to show link name if available. Accepts 1|true or 0|false. Default 0|false.
  • 'before'
    (string) The HTML or text to prepend to each bookmark. Default <li>.
  • 'after'
    (string) The HTML or text to append to each bookmark. Default </li>.
  • 'link_before'
    (string) The HTML or text to prepend to each bookmark inside the anchor tags.
  • 'link_after'
    (string) The HTML or text to append to each bookmark inside the anchor tags.
  • 'between'
    (string) The string for use in between the link, description, and image. Default "n".
  • 'show_rating'
    (int|bool) Whether to show the link rating. Accepts 1|true or 0|false. Default 0|false.

Default value: ''


返回值

(string) Formatted output in HTML


源代码

File: wp-includes/bookmark-template.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' => ''
	);

	$r = 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 .= $r['before'];
		if ( $r['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 ( $r['show_updated'] ) {
			if ( '00' != substr( $bookmark->link_updated_f, 0, 2 ) ) {
				$title .= ' (';
				$title .= sprintf(
					__('Last updated: %s'),
					date(
get_option( 'links_updated_date_format' ),
$bookmark->link_updated_f + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS )
					)
				);
				$title .= ')';
			}
		}
		$alt = ' alt="' . $name . ( $r['show_description'] ? ' ' . $title : '' ) . '"';

		if ( '' != $title ) {
			$title = ' title="' . $title . '"';
		}
		$rel = $bookmark->link_rel;
		if ( '' != $rel ) {
			$rel = ' rel="' . esc_attr($rel) . '"';
		}
		$target = $bookmark->link_target;
		if ( '' != $target ) {
			$target = ' target="' . $target . '"';
		}
		$output .= '<a href="' . $the_link . '"' . $rel . $title . $target . '>';

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

		if ( $bookmark->link_image != null && $r['show_images'] ) {
			if ( strpos( $bookmark->link_image, 'http' ) === 0 ) {
				$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 ( $r['show_name'] ) {
				$output .= " $name";
			}
		} else {
			$output .= $name;
		}

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

		$output .= '</a>';

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

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

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

	return $output;
}

更新日志

Versiondescription
2.1.0Introduced.

相关函数

Uses

  • wp-includes/l10n.php: __()
  • wp-includes/formatting.php: esc_url()
  • wp-includes/formatting.php: esc_attr()
  • wp-includes/functions.php: wp_parse_args()
  • wp-includes/option.php: get_option()
  • wp-includes/bookmark.php: sanitize_bookmark_field()
  • Show 1 more use Hide more uses

Used By

  • wp-includes/bookmark-template.php: wp_list_bookmarks()

User Contributed Notes

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文