get_bookmarks [ WordPress-Funktionen ]
| Parameter: |
|
| Nutzt: |
|
| Links: | |
| Gibt zurück: |
|
| Definiert in: |
|
| Codex |
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.
Quellcode
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);
}Beispiele [ wp-snippets.com ]
Top Google Suchergebnisse
- Function Reference/get bookmarks « WordPress Codex
Function Reference/get bookmarks. Languages: English • 日本語 • (Add your language) ... Source File. get_bookmarks() is located in wp-includes/bookmark. php .
codex.wordpress.org - WordPress › Support » Tags — get_bookmarks
Tag: get_bookmarks Add New ». Topic, Posts, Last Poster ...
wordpress.org - WordPress › Support » Link Category Titles using get_bookmarks
Hi everyone,. I'm trying to do some custom formatting for WordPress' Links (aka bookmark links). Using get_bookmarks() I can do most of what I want, but I can't ...
wordpress.org - get_bookmarks (WordPress Function) - WPSeek.com
May 10, 2013 ... Retrieves the list of bookmarks WordPress lookup for get_bookmarks, a WordPress Function.
wpseek.com
Nutzerduskussionen [ wordpress.org ]
- mangsidi on "get_bookmarks() missing exclude_category parameter?"
- quantum0d0 on "How to show last updated meta for links?"
- 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"
