get_bookmarks [ WordPress Function ]
| Parameters: |
|
| Uses: |
|
| Links: | |
| Returns: |
|
| Defined at: |
|
Retrieves the list of bookmarks
Attempts to retrieve from the cache first based on MD5 hash of arguments. If that fails, then the query will be built from the arguments and executed. The results will be stored to the cache.
List of default arguments are as follows: 'orderby' - Default is 'name' (string). How to order the links by. String is based off of the bookmark scheme. 'order' - Default is 'ASC' (string). Either 'ASC' or 'DESC'. Orders in either ascending or descending order. 'limit' - Default is -1 (integer) or show all. The amount of bookmarks to display. 'category' - Default is empty string (string). Include the links in what category ID(s). 'category_name' - Default is empty string (string). Get links by category name. 'hide_invisible' - Default is 1 (integer). Whether to show (default) or hide links marked as 'invisible'. 'show_updated' - Default is 0 (integer). Will show the time of when the bookmark was last updated. 'include' - Default is empty string (string). Include bookmark ID(s) separated by commas. 'exclude' - Default is empty string (string). Exclude bookmark ID(s) separated by commas.
Source
<?php
function get_bookmarks($args = '') {
global $wpdb;
$defaults = array(
'orderby' => 'name', 'order' => 'ASC',
'limit' => -1, 'category' => '',
'category_name' => '', 'hide_invisible' => 1,
'show_updated' => 0, 'include' => '',
'exclude' => '', 'search' => ''
);
$r = wp_parse_args( $args, $defaults );
extract( $r, EXTR_SKIP );
$cache = array();
$key = md5( serialize( $r ) );
if ( $cache = wp_cache_get( 'get_bookmarks', 'bookmark' ) ) {
if ( is_array($cache) && isset( $cache[ $key ] ) )
return apply_filters('get_bookmarks', $cache[ $key ], $r );
}
if ( !is_array($cache) )
$cache = array();
$inclusions = '';
if ( !empty($include) ) {
$exclude = ''; //ignore exclude, category, and category_name params if using include
$category = '';
$category_name = '';
$inclinks = preg_split('/[\s,]+/',$include);
if ( count($inclinks) ) {
foreach ( $inclinks as $inclink ) {
if (empty($inclusions))
$inclusions = ' AND ( link_id = ' . intval($inclink) . ' ';
else
$inclusions .= ' OR link_id = ' . intval($inclink) . ' ';
}
}
}
if (!empty($inclusions))
$inclusions .= ')';
$exclusions = '';
if ( !empty($exclude) ) {
$exlinks = preg_split('/[\s,]+/',$exclude);
if ( count($exlinks) ) {
foreach ( $exlinks as $exlink ) {
if (empty($exclusions))
$exclusions = ' AND ( link_id <> ' . intval($exlink) . ' ';
else
$exclusions .= ' AND link_id <> ' . intval($exlink) . ' ';
}
}
}
if (!empty($exclusions))
$exclusions .= ')';
if ( !empty($category_name) ) {
if ( $category = get_term_by('name', $category_name, 'link_category') ) {
$category = $category->term_id;
} else {
$cache[ $key ] = array();
wp_cache_set( 'get_bookmarks', $cache, 'bookmark' );
return apply_filters( 'get_bookmarks', array(), $r );
}
}
if ( ! empty($search) ) {
$search = like_escape($search);
$search = " AND ( (link_url LIKE '%$search%') OR (link_name LIKE '%$search%') OR (link_description LIKE '%$search%') ) ";
}
$category_query = '';
$join = '';
if ( !empty($category) ) {
$incategories = preg_split('/[\s,]+/',$category);
if ( count($incategories) ) {
foreach ( $incategories as $incat ) {
if (empty($category_query))
$category_query = ' AND ( tt.term_id = ' . intval($incat) . ' ';
else
$category_query .= ' OR tt.term_id = ' . intval($incat) . ' ';
}
}
}
if (!empty($category_query)) {
$category_query .= ") AND taxonomy = 'link_category'";
$join = " INNER JOIN $wpdb->term_relationships AS tr ON ($wpdb->links.link_id = tr.object_id) INNER JOIN $wpdb->term_taxonomy as tt ON tt.term_taxonomy_id = tr.term_taxonomy_id";
}
if ( $show_updated && get_option('links_recently_updated_time') ) {
$recently_updated_test = ", IF (DATE_ADD(link_updated, INTERVAL " . get_option('links_recently_updated_time') . " MINUTE) >= NOW(), 1,0) as recently_updated ";
} else {
$recently_updated_test = '';
}
$get_updated = ( $show_updated ) ? ', UNIX_TIMESTAMP(link_updated) AS link_updated_f ' : '';
$orderby = strtolower($orderby);
$length = '';
switch ( $orderby ) {
case 'length':
$length = ", CHAR_LENGTH(link_name) AS length";
break;
case 'rand':
$orderby = 'rand()';
break;
case 'link_id':
$orderby = "$wpdb->links.link_id";
break;
default:
$orderparams = array();
foreach ( explode(',', $orderby) as $ordparam ) {
$ordparam = trim($ordparam);
$keys = array( 'link_id', 'link_name', 'link_url', 'link_visible', 'link_rating', 'link_owner', 'link_updated', 'link_notes' );
if ( in_array( 'link_' . $ordparam, $keys ) )
$orderparams[] = 'link_' . $ordparam;
elseif ( in_array( $ordparam, $keys ) )
$orderparams[] = $ordparam;
}
$orderby = implode(',', $orderparams);
}
if ( empty( $orderby ) )
$orderby = 'link_name';
$order = strtoupper( $order );
if ( '' !== $order && !in_array( $order, array( 'ASC', 'DESC' ) ) )
$order = 'ASC';
$visible = '';
if ( $hide_invisible )
$visible = "AND link_visible = 'Y'";
$query = "SELECT * $length $recently_updated_test $get_updated FROM $wpdb->links $join WHERE 1=1 $visible $category_query";
$query .= " $exclusions $inclusions $search";
$query .= " ORDER BY $orderby $order";
if ($limit != -1)
$query .= " LIMIT $limit";
$results = $wpdb->get_results($query);
$cache[ $key ] = $results;
wp_cache_set( 'get_bookmarks', $cache, 'bookmark' );
return apply_filters('get_bookmarks', $results, $r);
}
?>
Examples [ wp-snippets.com ]
Google Arama Sonuçlarý
- Function Reference/get bookmarks « WordPress Codex
Description. This function returns an array of bookmarks found ...
codex.wordpress.org - WordPress › Support » Tags — get_bookmarks
(forgot?) Register · WordPress › Support » get_bookmarks ...
wordpress.org - get_bookmarks() object doesn't return link_category - Stack Overflow
I'm trying to fetch all link-categories from the built in Wordpress linklist ... In the source code for Wordpress 3.3.1 get_bookmarks() function, the link ...
stackoverflow.com - Get_bookmarks | WP Code Snippets
Apr 17, 2011 ... A blogroll is a list of links to other blogs or websites. There are three common reasons to display a blogroll: (1) to list sites that your visitors may ...
wpcodesnippets.info
Kullanýcý Tartýþmalarý [ wordpress.org ]
- wuchschba2 on "Filter 'get_bookmarks' not called if there is no link in the blogroll"
- keesiemeijer on "Looking for brilliant ideas for a tricky task involving accents"
- jennybeaumont on "Looking for brilliant ideas for a tricky task involving accents"
- keesiemeijer on "Looking for brilliant ideas for a tricky task involving accents"
- jennybeaumont on "Looking for brilliant ideas for a tricky task involving accents"
- jennybeaumont on "Looking for brilliant ideas for a tricky task involving accents"
- keesiemeijer on "problem defining category_name containing an ampersand when using get_bookmarks"
- keesiemeijer on "Looking for brilliant ideas for a tricky task involving accents"
- jennybeaumont on "problem defining category_name containing an ampersand when using get_bookmarks"
- jennybeaumont on "Looking for brilliant ideas for a tricky task involving accents"