_walk_bookmarks

函数
_walk_bookmarks ( $bookmarks, $args = '' )
Access
Private
参数
  • (array) $bookmarks List of bookmarks to traverse.
    Required:
  • (string|array) $args { Optional. Bookmarks arguments. @type int|bool $show_updated Whether to show the time the bookmark was last updated. Accepts 1|true or 0|false. Default 0|false. @type int|bool $show_description Whether to show the bookmark description. Accepts 1|true, Accepts 1|true or 0|false. Default 0|false. @type int|bool $show_images Whether to show the link image if available. Accepts 1|true or 0|false. Default 1|true. @type int|bool $show_name Whether to show link name if available. Accepts 1|true or 0|false. Default 0|false. @type string $before The HTML or text to prepend to each bookmark. Default `<li>`. @type string $after The HTML or text to append to each bookmark. Default `</li>`. @type string $link_before The HTML or text to prepend to each bookmark inside the anchor tags. Default empty. @type string $link_after The HTML or text to append to each bookmark inside the anchor tags. Default empty. @type string $between The string for use in between the link, description, and image. Default "\n". @type int|bool $show_rating Whether to show the link rating. Accepts 1|true or 0|false. Default 0|false. }
    Required:
    Default: (empty)
返回值
  • (string) Formatted output in HTML
定义位置
相关方法
wp_list_bookmarksget_bookmarksget_bookmarksanitize_bookmarkclean_bookmark_cache
引入
2.1.0
弃用
-

WordPress中的walk_bookmarks函数是用来生成一个分层的书签链接列表的。它需要几个参数,如类别ID、用于列表的类别和链接输出的格式,并返回书签链接的列表。

书签列表的格式化输出。

$bookmarks数组必须包含书签对象,并将被迭代到以检索将在输出中使用的书签。

输出的格式是HTML,没有办法改变这种格式。然而。之间、之前和之后的内容可以被改变。链接本身将是
HTML。

这个函数是由wp_list_bookmarks()内部使用的,不应该被主题使用。

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 ( '00' !== substr( $bookmark->link_updated_f, 0, 2 ) ) {
				$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 + ( 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 ) {
			if ( is_string( $rel ) && '' !== $rel ) {
				if ( ! str_contains( $rel, 'noopener' ) ) {
					$rel = trim( $rel ) . ' noopener';
				}
			} else {
				$rel = 'noopener';
			}

			$target = ' target="' . $target . '"';
		}

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

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

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

		if ( null != $bookmark->link_image && $parsed_args['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 ( $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;
}

常见问题

FAQs
查看更多 >