Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




get_bookmarks [ WordPress Function ]

get_bookmarks ( $args = '' )
Parameters:
  • (string|array) $args List of arguments to overwrite the defaults
Uses:
  • $wpdb
Links:
Returns:
  • (array) List of bookmark row objects
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$rEXTR_SKIP );

    
$cache = array();
    
$key md5serialize$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ý

Dahasý ...

0 User Note(s)

Henüz yok. Ýlk sen ol!

Yeni Ekle ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics