Created
August 4, 2011 14:19
-
-
Save mattboon/1125258 to your computer and use it in GitHub Desktop.
WP Bookmarks
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Bookmark Template Functions for usage in Themes | |
* | |
* @package WordPress | |
* @subpackage Template | |
*/ | |
/** | |
* 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. | |
* | |
* The defaults for overwriting are: | |
* 'show_updated' - Default is 0 (integer). Will show the time of when the | |
* bookmark was last updated. | |
* 'show_description' - Default is 0 (integer). Whether to show the description | |
* of the bookmark. | |
* 'show_images' - Default is 1 (integer). Whether to show link image if | |
* available. | |
* 'show_name' - Default is 0 (integer). Whether to show link name if | |
* available. | |
* 'before' - Default is '<li>' (string). The html or text to prepend to each | |
* bookmarks. | |
* 'after' - Default is '</li>' (string). The html or text to append to each | |
* bookmarks. | |
* 'link_before' - Default is '' (string). The html or text to prepend to each | |
* bookmarks inside the <a> tag. | |
* 'link_after' - Default is '' (string). The html or text to append to each | |
* bookmarks inside the <a> tag. | |
* 'between' - Default is '\n' (string). The string for use in between the link, | |
* description, and image. | |
* 'show_rating' - Default is 0 (integer). Whether to show the link rating. | |
* | |
* @since 2.1.0 | |
* @access private | |
* @usedby wp_list_bookmarks() | |
* | |
* @param array $bookmarks List of bookmarks to traverse | |
* @param string|array $args Optional. Overwrite the defaults. | |
* @return string Formatted output in HTML | |
*/ | |
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 ); | |
extract( $r, EXTR_SKIP ); | |
$output = ''; // Blank string to start with. | |
foreach ( (array) $bookmarks as $bookmark ) { | |
if ( !isset($bookmark->recently_updated) ) | |
$bookmark->recently_updated = false; | |
$output .= $before; | |
if ( $show_updated && $bookmark->recently_updated ) | |
$output .= get_option('links_recently_updated_prepend'); | |
$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 ( $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') * 3600))); | |
$title .= ')'; | |
} | |
$alt = ' alt="' . $name . ( $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 .= $link_before; | |
if ( $bookmark->link_image != null && $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 ( $show_name ) | |
$output .= " $name"; | |
} else { | |
$output .= $name; | |
} | |
$output .= $link_after; | |
$output .= '</a>'; | |
if ( $show_updated && $bookmark->recently_updated ) | |
$output .= get_option('links_recently_updated_append'); | |
if ( $show_description && '' != $desc ) | |
$output .= $between . $desc; | |
if ( $show_rating ) | |
$output .= $between . sanitize_bookmark_field('link_rating', $bookmark->link_rating, $bookmark->link_id, 'display'); | |
$output .= "$after\n"; | |
} // end while | |
return $output; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment