WordPress函数文档get_bookmarks()
获取所有的链接(可设置筛选条件) 描述 译文 该函数返回一个书签(收藏链接)数组。该模板标签允许用户直接查找书…
获取所有的链接(可设置筛选条件)
描述
译文
该函数返回一个书签(收藏链接)数组。该模板标签允许用户直接查找书签信息。
原文
This function returns an array of bookmarks found in the Administration > Links > Edit panel. This Template Tag allows the user to retrieve the bookmark information directly.
用法
<?php get_bookmarks( $args ); ?>
Default Usage
1
2
3
4
|
/* ———————————-
* wordpress函数 kim收集
* ———————————- */
<?php $args = array( ‘orderby’ => ‘name’, ‘order’ => ‘ASC’, ‘limit’ => –1, ‘category’ => ”, ‘category_name’ => ”, ‘hide_invisible’ => 1, ‘show_updated’ => 0, ‘include’ => ”, ‘exclude’ => ”, ‘search’ => ” ); ?>
|
By default, the usage gets:
- All bookmarks ordered by name, ascending
- Bookmarks marked as hidden are not returned.
- The link_updated_f field (the update time in the form of a timestamp) is not returned.
参数
orderby
(string) Value to sort bookmarks on. Defaults to ‘name’. Valid options:
- ‘link_id’ – Before WordPress 3.2: ‘id’
- ‘url’
- ‘name’ – Default
- ‘owner’ – User who added bookmark through bookmarks Manager.
- ‘rating’
- ‘visible’
- ‘length’ – The length of the bookmark name, shortest to longest.
- ‘rand’ – Display bookmarks in random order.
order
(string) Sort order, ascending or descending for the orderby parameter. Valid values:
- ASC – Default
- DESC
limit
(integer) Maximum number of bookmarks to display. Defaults to -1 (all bookmarks).
category
(string) Comma separated list of bookmark category ID’s.
category_name
(string) Category name of a category of bookmarks to retrieve. Overrides category parameter.
hide_invisible
(boolean) TRUE causes only bookmarks with link_visible set to ‘Y’ to be retrieved.
- 1 (True) – Default
- 0 (False)
show_updated
(boolean) TRUE causes an extra column called “link_category_f” to be inserted into the results, which contains the same value as “link_updated”, but in a unix timestamp format. Handy for using PHP date functions on this data.
- 1 (True)
- 0 (False) – Default
include
(string) Comma separated list of numeric bookmark IDs to include in the output. For example, ‘include=1,3,6’ means to return or echo bookmark IDs 1, 3, and 6. If the include string is used, the category, category_name, and exclude parameters are ignored. Defaults to ” (all Bookmarks).
exclude
(string) Comma separated list of numeric bookmark IDs to exclude. For example, ‘exclude=4,12’ means that bookmark IDs 4 and 12 will NOT be returned or echoed. Defaults to ” (exclude nothing).
search
(string) Searches link_url, link_name or link_description like the search string. Defaults to ”.
返回值
(array)
List of bookmark row objects. Each bookmark object may contain the following: ‘link_id’, ‘link_url’, ‘link_name’, ‘link_image’, ‘link_target’, ‘link_category’, ‘link_description’, ‘link_visible’, ‘link_owner’, ‘link_rating’, ‘link_updated’, ‘link_rel’, ‘link_notes’, ‘link_rss’
示例
– Create a link category named “Related Sites”
– Create a few links, adding them to the “Related Sites” category
You may use the following code in your templates to retrieve the links:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/* ———————————-
* wordpress函数 kim收集
* ———————————- */
<?php
$bookmarks = get_bookmarks( array(
‘orderby’ => ‘name’,
‘order’ => ‘ASC’,
‘category_name’ => ‘Related Sites’
));
// Loop through each bookmark and print formatted output
foreach ( $bookmarks as $bookmark ) {
printf( ‘<a class=”relatedlink” href=”%s”>%s</a><br />’, $bookmark->link_url, $bookmark->link_name );
}
?>
|
源文件
get_bookmarks() 函数的代码位于 wp-includes/bookmark.php
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
|
/* ———————————-
* wordpress函数 kim收集
* ———————————- */
/**
* 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.
*
* @since 2.1.0
*
* @global wpdb $wpdb WordPress database abstraction object.
*
* @param string|array $args {
* Optional. String or array of arguments to retrieve bookmarks.
*
* @type string $orderby How to order the links by. Accepts post fields. Default ‘name’.
* @type string $order Whether to order bookmarks in ascending or descending order.
* Accepts ‘ASC’ (ascending) or ‘DESC’ (descending). Default ‘ASC’.
* @type int $limit Amount of bookmarks to display. Accepts 1+ or -1 for all.
* Default -1.
* @type string $category Comma-separated list of category ids to include links from.
* Default empty.
* @type string $category_name Category to retrieve links for by name. Default empty.
* @type int|bool $hide_invisible Whether to show or hide links marked as ‘invisible’. Accepts
* 1|true or 0|false. Default 1|true.
* @type int|bool $show_updated Whether to display the time the bookmark was last updated.
* Accepts 1|true or 0|false. Default 0|false.
* @type string $include Comma-separated list of bookmark IDs to include. Default empty.
* @type string $exclude Comma-separated list of bookmark IDs to exclude. Default empty.
* }
* @return array List of bookmark row objects.
*/
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 );
$key = md5( serialize( $r ) );
if ( $cache = wp_cache_get( ‘get_bookmarks’, ‘bookmark’ ) ) {
if ( is_array( $cache ) && isset( $cache[ $key ] ) ) {
$bookmarks = $cache[ $key ];
/**
* Filter the returned list of bookmarks.
*
* The first time the hook is evaluated in this file, it returns the cached
* bookmarks list. The second evaluation returns a cached bookmarks list if the
* link category is passed but does not exist. The third evaluation returns
* the full cached results.
*
* @since 2.1.0
*
* @see get_bookmarks()
*
* @param array $bookmarks List of the cached bookmarks.
* @param array $r An array of bookmark query arguments.
*/
return apply_filters( ‘get_bookmarks’, $bookmarks, $r );
}
}
if ( ! is_array( $cache ) ) {
$cache = array();
}
$inclusions = ”;
if ( ! empty( $r[‘include’] ) ) {
$r[‘exclude’] = ”; //ignore exclude, category, and category_name params if using include
$r[‘category’] = ”;
$r[‘category_name’] = ”;
$inclinks = preg_split( ‘/[s,]+/’, $r[‘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( $r[‘exclude’] ) ) {
$exlinks = preg_split( ‘/[s,]+/’, $r[‘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( $r[‘category_name’] ) ) {
if ( $r[‘category’] = get_term_by(‘name’, $r[‘category_name’], ‘link_category’) ) {
$r[‘category’] = $r[‘category’]->term_id;
} else {
$cache[ $key ] = array();
wp_cache_set( ‘get_bookmarks’, $cache, ‘bookmark’ );
/** This filter is documented in wp-includes/bookmark.php */
return apply_filters( ‘get_bookmarks’, array(), $r );
}
}
$search = ”;
if ( ! empty( $r[‘search’] ) ) {
$like = ‘%’ . $wpdb->esc_like( $r[‘search’] ) . ‘%’;
$search = $wpdb->prepare(” AND ( (link_url LIKE %s) OR (link_name LIKE %s) OR (link_description LIKE %s) ) “, $like, $like, $like );
}
$category_query = ”;
$join = ”;
if ( ! empty( $r[‘category’] ) ) {
$incategories = preg_split( ‘/[s,]+/’, $r[‘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 ( $r[‘show_updated’] ) {
$recently_updated_test = “, IF (DATE_ADD(link_updated, INTERVAL 120 MINUTE) >= NOW(), 1,0) as recently_updated “;
} else {
$recently_updated_test = ”;
}
$get_updated = ( $r[‘show_updated’] ) ? ‘, UNIX_TIMESTAMP(link_updated) AS link_updated_f ‘ : ”;
$orderby = strtolower( $r[‘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();
$keys = array( ‘link_id’, ‘link_name’, ‘link_url’, ‘link_visible’, ‘link_rating’, ‘link_owner’, ‘link_updated’, ‘link_notes’, ‘link_description’ );
foreach ( explode( ‘,’, $orderby ) as $ordparam ) {
$ordparam = trim( $ordparam );
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( $r[‘order’] );
if ( ” !== $order && ! in_array( $order, array( ‘ASC’, ‘DESC’ ) ) ) {
$order = ‘ASC’;
}
$visible = ”;
if ( $r[‘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 ( $r[‘limit’] != –1 ) {
$query .= ‘ LIMIT ‘ . $r[‘limit’];
}
$results = $wpdb->get_results( $query );
$cache[ $key ] = $results;
wp_cache_set( ‘get_bookmarks’, $cache, ‘bookmark’ );
/** This filter is documented in wp-includes/bookmark.php */
return apply_filters( ‘get_bookmarks’, $results, $r );
}
|
相关
get_bookmark(),
get_bookmark_field(),
get_bookmarks(),
wp_list_bookmarks()
- 原文:http://codex.wordpress.org/Function_Reference/get_bookmarks
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
评论功能已经关闭!