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 = '' ): string
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.
Parameters
-
$bookmarks
array Required -
List of bookmarks to traverse.
-
$args
string|array Optional -
Bookmarks arguments.
show_updated
int|boolWhether to show the time the bookmark was last updated.
Accepts1|true
or0|false
. Default0|false
.show_description
int|boolWhether to show the bookmark description. Accepts1|true
, Accepts1|true
or0|false
. Default0|false
.show_images
int|boolWhether to show the link image if available. Accepts1|true
or0|false
. Default1|true
.show_name
int|boolWhether to show link name if available. Accepts1|true
or0|false
. Default0|false
.before
stringThe HTML or text to prepend to each bookmark. Default<li>
.after
stringThe HTML or text to append to each bookmark. Default</li>
.link_before
stringThe HTML or text to prepend to each bookmark inside the anchor tags.link_after
stringThe HTML or text to append to each bookmark inside the anchor tags.between
stringThe string for use in between the link, description, and image.
Default "n".show_rating
int|boolWhether to show the link rating. Accepts1|true
or0|false
.
Default0|false
.
Default:
''
Return
string Formatted output in HTML
Source
File: wp-includes/bookmark-template.php
.
View all references
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;
}
Changelog
Version | Description |
---|---|
2.1.0 | Introduced. |