wpseek.com
Eine auf WordPress spezialiserte Suchmaschine für Entwickler und Theme-Autoren



_walk_bookmarks › WordPress Function

Seit2.1.0
Veraltetn/v
_walk_bookmarks ( $bookmarks, $args = '' )
Zugriff:
  • private
Parameter: (2)
  • (array) $bookmarks List of bookmarks to traverse.
    Erforderlich: Ja
  • (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. }
    Erforderlich: Nein
    Standard: (leer)
Gibt zurück:
  • (string) Formatted output in HTML
Definiert in:
Codex:

The formatted output of a list of 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.


Quellcode

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 ) {
			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 ( '' !== $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;
}