run:R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
23.8 KB
2026-03-11 16:18:51
R W Run
7.8 KB
2026-03-11 16:18:52
R W Run
36.1 KB
2026-03-11 16:18:51
R W Run
11.9 KB
2026-03-11 16:18:52
R W Run
18.94 KB
2026-03-11 16:18:52
R W Run
7.35 KB
2026-03-11 16:18:52
R W Run
28.6 KB
2026-03-11 16:18:51
R W Run
316 By
2026-03-11 16:18:51
R W Run
12.9 KB
2026-03-11 16:18:51
R W Run
61.02 KB
2026-03-11 16:18:52
R W Run
15 KB
2026-03-11 16:18:51
R W Run
112.05 KB
2026-03-11 16:18:51
R W Run
12.47 KB
2026-03-11 16:18:51
R W Run
15.07 KB
2026-03-11 16:18:52
R W Run
9.84 KB
2026-03-11 16:18:52
R W Run
13.17 KB
2026-03-11 16:18:52
R W Run
33.83 KB
2026-03-11 16:18:51
R W Run
42.63 KB
2026-03-11 16:18:51
R W Run
55.71 KB
2026-03-11 16:18:52
R W Run
12.53 KB
2026-03-11 16:18:51
R W Run
2.55 KB
2026-03-11 16:18:52
R W Run
28.92 KB
2026-03-11 16:18:52
R W Run
539 By
2026-03-11 16:18:51
R W Run
367 By
2026-03-11 16:18:52
R W Run
42.65 KB
2026-03-11 16:18:51
R W Run
401 By
2026-03-11 16:18:51
R W Run
6.61 KB
2026-03-11 16:18:51
R W Run
664 By
2026-03-11 16:18:52
R W Run
20.63 KB
2026-03-11 16:18:51
R W Run
2.18 KB
2026-03-11 16:18:52
R W Run
453 By
2026-03-11 16:18:52
R W Run
457 By
2026-03-11 16:18:51
R W Run
36.83 KB
2026-03-11 16:18:52
R W Run
2.41 KB
2026-03-11 16:18:52
R W Run
8.28 KB
2026-03-11 16:18:51
R W Run
13.89 KB
2026-03-11 16:18:51
R W Run
11.76 KB
2026-03-11 16:18:51
R W Run
2.65 KB
2026-03-11 16:18:51
R W Run
7.43 KB
2026-03-11 16:18:51
R W Run
17.46 KB
2026-03-11 16:18:51
R W Run
5.14 KB
2026-03-11 16:18:52
R W Run
16.7 KB
2026-03-11 16:18:51
R W Run
8.28 KB
2026-03-11 16:18:52
R W Run
2.92 KB
2026-03-11 16:18:52
R W Run
1.32 KB
2026-03-11 16:18:51
R W Run
4.6 KB
2026-03-11 16:18:52
R W Run
11.62 KB
2026-03-11 16:18:52
R W Run
2.5 KB
2026-03-11 16:18:51
R W Run
1.97 KB
2026-03-11 16:18:51
R W Run
11.25 KB
2026-03-11 16:18:52
R W Run
5.32 KB
2026-03-11 16:18:51
R W Run
10.99 KB
2026-03-11 16:18:52
R W Run
68.32 KB
2026-03-11 16:18:51
R W Run
6.34 KB
2026-03-11 16:18:51
R W Run
5.49 KB
2026-03-11 16:18:51
R W Run
1.99 KB
2026-03-11 16:18:52
R W Run
7.02 KB
2026-03-11 16:18:51
R W Run
4.91 KB
2026-03-11 16:18:52
R W Run
16.86 KB
2026-03-11 16:18:51
R W Run
24.23 KB
2026-03-11 16:18:51
R W Run
3.97 KB
2026-03-11 16:18:51
R W Run
47.66 KB
2026-03-11 16:18:51
R W Run
9.22 KB
2026-03-11 16:18:51
R W Run
25.51 KB
2026-03-11 16:18:51
R W Run
198.38 KB
2026-03-11 16:18:52
R W Run
56.65 KB
2026-03-11 16:18:51
R W Run
10.46 KB
2026-03-11 16:18:51
R W Run
10.95 KB
2026-03-11 16:18:52
R W Run
29.26 KB
2026-03-11 16:18:51
R W Run
70.91 KB
2026-03-11 16:18:52
R W Run
35.3 KB
2026-03-11 16:18:52
R W Run
16.61 KB
2026-03-11 16:18:52
R W Run
2.57 KB
2026-03-11 16:18:52
R W Run
39.83 KB
2026-03-11 16:18:51
R W Run
70.64 KB
2026-03-11 16:18:51
R W Run
15.56 KB
2026-03-11 16:18:52
R W Run
7.33 KB
2026-03-11 16:18:52
R W Run
253 By
2026-03-11 16:18:51
R W Run
7.96 KB
2026-03-11 16:18:52
R W Run
3.23 KB
2026-03-11 16:18:52
R W Run
969 By
2026-03-11 16:18:52
R W Run
16.28 KB
2026-03-11 16:18:51
R W Run
7.22 KB
2026-03-11 16:18:51
R W Run
12.95 KB
2026-03-11 16:18:51
R W Run
6.53 KB
2026-03-11 16:18:51
R W Run
3.42 KB
2026-03-11 16:18:52
R W Run
5.84 KB
2026-03-11 16:18:51
R W Run
1.97 KB
2026-03-11 16:18:51
R W Run
4.3 KB
2026-03-11 16:18:52
R W Run
2.91 KB
2026-03-11 16:18:51
R W Run
16.46 KB
2026-03-11 16:18:52
R W Run
40.6 KB
2026-03-11 16:18:51
R W Run
20.22 KB
2026-03-11 16:18:51
R W Run
36.11 KB
2026-03-11 16:18:52
R W Run
17.01 KB
2026-03-11 16:18:51
R W Run
7.27 KB
2026-03-11 16:18:52
R W Run
6.62 KB
2026-03-11 16:18:52
R W Run
16.49 KB
2026-03-11 16:18:52
R W Run
1.79 KB
2026-03-11 16:18:52
R W Run
29.82 KB
2026-03-11 16:18:51
R W Run
6.67 KB
2026-03-11 16:18:52
R W Run
8.98 KB
2026-03-11 16:18:52
R W Run
19.42 KB
2026-03-11 16:18:51
R W Run
12.01 KB
2026-03-11 16:18:51
R W Run
17.11 KB
2026-03-11 16:18:51
R W Run
6.74 KB
2026-03-11 16:18:52
R W Run
30.93 KB
2026-03-11 16:18:51
R W Run
4.99 KB
2026-03-11 16:18:51
R W Run
4.25 KB
2026-03-11 16:18:51
R W Run
24.72 KB
2026-03-11 16:18:51
R W Run
29.96 KB
2026-03-11 16:18:52
R W Run
6.41 KB
2026-03-11 16:18:51
R W Run
160 KB
2026-03-11 16:18:51
R W Run
6.72 KB
2026-03-11 16:18:52
R W Run
10.92 KB
2026-03-11 16:18:51
R W Run
4.77 KB
2026-03-11 16:18:51
R W Run
3.38 KB
2026-03-11 16:18:51
R W Run
11.18 KB
2026-03-11 16:18:51
R W Run
62.19 KB
2026-03-11 16:18:51
R W Run
2.46 KB
2026-03-11 16:18:51
R W Run
9.17 KB
2026-03-11 16:18:51
R W Run
32.15 KB
2026-03-11 16:18:51
R W Run
34.05 KB
2026-03-11 16:18:52
R W Run
7.15 KB
2026-03-11 16:18:51
R W Run
3.47 KB
2026-03-11 16:18:52
R W Run
1.87 KB
2026-03-11 16:18:52
R W Run
30.91 KB
2026-03-11 16:18:51
R W Run
7.29 KB
2026-03-11 16:18:52
R W Run
7.35 KB
2026-03-11 16:18:51
R W Run
12.54 KB
2026-03-11 16:18:51
R W Run
19.12 KB
2026-03-11 16:18:51
R W Run
18.12 KB
2026-03-11 16:18:52
R W Run
39.99 KB
2026-03-11 16:18:52
R W Run
5.17 KB
2026-03-11 16:18:52
R W Run
979 By
2026-03-11 16:18:51
R W Run
18.44 KB
2026-03-11 16:18:52
R W Run
10.24 KB
2026-03-11 16:18:51
R W Run
1.77 KB
2026-03-11 16:18:52
R W Run
34.9 KB
2026-03-11 16:18:51
R W Run
7.19 KB
2026-03-11 16:18:52
R W Run
160.5 KB
2026-03-11 16:18:51
R W Run
64.27 KB
2026-03-11 16:18:51
R W Run
27.95 KB
2026-03-11 16:18:51
R W Run
4.69 KB
2026-03-11 16:18:51
R W Run
2.94 KB
2026-03-11 16:18:51
R W Run
43.13 KB
2026-03-11 16:18:52
R W Run
2.25 KB
2026-03-11 16:18:52
R W Run
22.5 KB
2026-03-11 16:18:51
R W Run
13.01 KB
2026-03-11 16:18:52
R W Run
3.27 KB
2026-03-11 16:18:51
R W Run
18 KB
2026-03-11 16:18:51
R W Run
210.4 KB
2026-03-11 16:18:52
R W Run
25.86 KB
2026-03-11 16:18:52
R W Run
115.85 KB
2026-03-11 16:18:51
R W Run
373 By
2026-03-11 16:18:52
R W Run
343 By
2026-03-11 16:18:52
R W Run
338 By
2026-03-11 16:18:51
R W Run
100.73 KB
2026-03-11 16:18:52
R W Run
130.93 KB
2026-03-11 16:18:51
R W Run
19.1 KB
2026-03-11 16:18:51
R W Run
17.41 KB
2026-03-11 16:18:52
R W Run
41.98 KB
2026-03-11 16:18:52
R W Run
400 By
2026-03-11 16:18:52
R W Run
11.1 KB
2026-03-11 16:18:52
R W Run
37.02 KB
2026-03-11 16:18:51
R W Run
2.24 KB
2026-03-11 16:18:51
R W Run
188.13 KB
2026-03-11 16:18:51
R W Run
338 By
2026-03-11 16:18:51
R W Run
38 KB
2026-03-11 16:18:51
R W Run
4.02 KB
2026-03-11 16:18:52
R W Run
5.38 KB
2026-03-11 16:18:51
R W Run
3.05 KB
2026-03-11 16:18:52
R W Run
2.61 KB
2026-03-11 16:18:51
R W Run
1.16 KB
2026-03-11 16:18:52
R W Run
4.04 KB
2026-03-11 16:18:51
R W Run
3.71 KB
2026-03-11 16:18:51
R W Run
24.6 KB
2026-03-11 16:18:51
R W Run
9.56 KB
2026-03-11 16:18:51
R W Run
346.43 KB
2026-03-11 16:18:52
R W Run
281.84 KB
2026-03-11 16:18:52
R W Run
14.95 KB
2026-03-11 16:18:51
R W Run
8.44 KB
2026-03-11 16:18:52
R W Run
168.95 KB
2026-03-11 16:18:52
R W Run
20.71 KB
2026-03-11 16:18:52
R W Run
25.27 KB
2026-03-11 16:18:51
R W Run
5.72 KB
2026-03-11 16:18:51
R W Run
4.63 KB
2026-03-11 16:18:52
R W Run
81.73 KB
2026-03-11 16:18:51
R W Run
67.18 KB
2026-03-11 16:18:51
R W Run
156.36 KB
2026-03-11 16:18:52
R W Run
55.19 KB
2026-03-11 16:18:51
R W Run
162 By
2026-03-11 16:18:51
R W Run
61.72 KB
2026-03-11 16:18:51
R W Run
216.06 KB
2026-03-11 16:18:52
R W Run
65.09 KB
2026-03-11 16:18:51
R W Run
25.24 KB
2026-03-11 16:18:52
R W Run
4.81 KB
2026-03-11 16:18:51
R W Run
6.48 KB
2026-03-11 16:18:52
R W Run
21.25 KB
2026-03-11 16:18:51
R W Run
2.79 KB
2026-03-11 16:18:52
R W Run
89.69 KB
2026-03-11 16:18:52
R W Run
19.42 KB
2026-03-11 16:18:52
R W Run
3.69 KB
2026-03-11 16:18:52
R W Run
4.11 KB
2026-03-11 16:18:51
R W Run
40.74 KB
2026-03-11 16:18:51
R W Run
25.38 KB
2026-03-11 16:18:51
R W Run
43.31 KB
2026-03-11 16:18:52
R W Run
102.57 KB
2026-03-11 16:18:52
R W Run
6.18 KB
2026-03-11 16:18:51
R W Run
124.47 KB
2026-03-11 16:18:52
R W Run
35.65 KB
2026-03-11 16:18:52
R W Run
6.94 KB
2026-03-11 16:18:52
R W Run
67.04 KB
2026-03-11 16:18:52
R W Run
10.62 KB
2026-03-11 16:18:51
R W Run
289.35 KB
2026-03-11 16:18:52
R W Run
36.23 KB
2026-03-11 16:18:51
R W Run
200 By
2026-03-11 16:18:52
R W Run
200 By
2026-03-11 16:18:52
R W Run
98.29 KB
2026-03-11 16:18:52
R W Run
30.02 KB
2026-03-11 16:18:52
R W Run
19.03 KB
2026-03-11 16:18:52
R W Run
5.06 KB
2026-03-11 16:18:52
R W Run
255 By
2026-03-11 16:18:51
R W Run
22.66 KB
2026-03-11 16:18:52
R W Run
154.63 KB
2026-03-11 16:18:51
R W Run
9.68 KB
2026-03-11 16:18:51
R W Run
258 By
2026-03-11 16:18:51
R W Run
23.49 KB
2026-03-11 16:18:51
R W Run
3.16 KB
2026-03-11 16:18:51
R W Run
8.4 KB
2026-03-11 16:18:52
R W Run
441 By
2026-03-11 16:18:51
R W Run
7.39 KB
2026-03-11 16:18:51
R W Run
173 KB
2026-03-11 16:18:52
R W Run
544 By
2026-03-11 16:18:52
R W Run
4.17 KB
2026-03-11 16:18:51
R W Run
35.97 KB
2026-03-11 16:18:52
R W Run
1.69 KB
2026-03-11 16:18:51
R W Run
2.84 KB
2026-03-11 16:18:52
R W Run
6.09 KB
2026-03-11 16:18:51
R W Run
8.71 KB
2026-03-11 16:18:51
R W Run
131.84 KB
2026-03-11 16:18:51
R W Run
37.45 KB
2026-03-11 16:18:51
R W Run
173.89 KB
2026-03-11 16:18:51
R W Run
7.09 KB
2026-03-11 16:18:51
R W Run
6.41 KB
2026-03-11 16:18:51
R W Run
1.08 KB
2026-03-11 16:18:51
R W Run
69.46 KB
2026-03-11 16:18:52
R W Run
445 By
2026-03-11 16:18:51
R W Run
799 By
2026-03-11 16:18:52
R W Run
error_log
📄bookmark.php
1<?php
2/**
3 * Link/Bookmark API
4 *
5 * @package WordPress
6 * @subpackage Bookmark
7 */
8
9/**
10 * Retrieves bookmark data.
11 *
12 * @since 2.1.0
13 *
14 * @global object $link Current link object.
15 * @global wpdb $wpdb WordPress database abstraction object.
16 *
17 * @param int|stdClass $bookmark
18 * @param string $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which
19 * correspond to an stdClass object, an associative array, or a numeric array,
20 * respectively. Default OBJECT.
21 * @param string $filter Optional. How to sanitize bookmark fields. Default 'raw'.
22 * @return array|object|null Type returned depends on $output value.
23 */
24function get_bookmark( $bookmark, $output = OBJECT, $filter = 'raw' ) {
25 global $wpdb;
26
27 if ( empty( $bookmark ) ) {
28 if ( isset( $GLOBALS['link'] ) ) {
29 $_bookmark = & $GLOBALS['link'];
30 } else {
31 $_bookmark = null;
32 }
33 } elseif ( is_object( $bookmark ) ) {
34 wp_cache_add( $bookmark->link_id, $bookmark, 'bookmark' );
35 $_bookmark = $bookmark;
36 } else {
37 if ( isset( $GLOBALS['link'] ) && ( $GLOBALS['link']->link_id === $bookmark ) ) {
38 $_bookmark = & $GLOBALS['link'];
39 } else {
40 $_bookmark = wp_cache_get( $bookmark, 'bookmark' );
41 if ( ! $_bookmark ) {
42 $_bookmark = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->links WHERE link_id = %d LIMIT 1", $bookmark ) );
43 if ( $_bookmark ) {
44 $_bookmark->link_category = array_unique( wp_get_object_terms( $_bookmark->link_id, 'link_category', array( 'fields' => 'ids' ) ) );
45 wp_cache_add( $_bookmark->link_id, $_bookmark, 'bookmark' );
46 }
47 }
48 }
49 }
50
51 if ( ! $_bookmark ) {
52 return $_bookmark;
53 }
54
55 $_bookmark = sanitize_bookmark( $_bookmark, $filter );
56
57 if ( OBJECT === $output ) {
58 return $_bookmark;
59 } elseif ( ARRAY_A === $output ) {
60 return get_object_vars( $_bookmark );
61 } elseif ( ARRAY_N === $output ) {
62 return array_values( get_object_vars( $_bookmark ) );
63 } else {
64 return $_bookmark;
65 }
66}
67
68/**
69 * Retrieves single bookmark data item or field.
70 *
71 * @since 2.3.0
72 *
73 * @param string $field The name of the data field to return.
74 * @param int $bookmark The bookmark ID to get field.
75 * @param string $context Optional. The context of how the field will be used. Default 'display'.
76 * @return string|WP_Error
77 */
78function get_bookmark_field( $field, $bookmark, $context = 'display' ) {
79 $bookmark = (int) $bookmark;
80 $bookmark = get_bookmark( $bookmark );
81
82 if ( is_wp_error( $bookmark ) ) {
83 return $bookmark;
84 }
85
86 if ( ! is_object( $bookmark ) ) {
87 return '';
88 }
89
90 if ( ! isset( $bookmark->$field ) ) {
91 return '';
92 }
93
94 return sanitize_bookmark_field( $field, $bookmark->$field, $bookmark->link_id, $context );
95}
96
97/**
98 * Retrieves the list of bookmarks.
99 *
100 * Attempts to retrieve from the cache first based on MD5 hash of arguments. If
101 * that fails, then the query will be built from the arguments and executed. The
102 * results will be stored to the cache.
103 *
104 * @since 2.1.0
105 *
106 * @global wpdb $wpdb WordPress database abstraction object.
107 *
108 * @param string|array $args {
109 * Optional. String or array of arguments to retrieve bookmarks.
110 *
111 * @type string $orderby How to order the links by. Accepts 'id', 'link_id', 'name', 'link_name',
112 * 'url', 'link_url', 'visible', 'link_visible', 'rating', 'link_rating',
113 * 'owner', 'link_owner', 'updated', 'link_updated', 'notes', 'link_notes',
114 * 'description', 'link_description', 'length' and 'rand'.
115 * When `$orderby` is 'length', orders by the character length of
116 * 'link_name'. Default 'name'.
117 * @type string $order Whether to order bookmarks in ascending or descending order.
118 * Accepts 'ASC' (ascending) or 'DESC' (descending). Default 'ASC'.
119 * @type int $limit Amount of bookmarks to display. Accepts any positive number or
120 * -1 for all. Default -1.
121 * @type string $category Comma-separated list of category IDs to include links from.
122 * Default empty.
123 * @type string $category_name Category to retrieve links for by name. Default empty.
124 * @type int|bool $hide_invisible Whether to show or hide links marked as 'invisible'. Accepts
125 * 1|true or 0|false. Default 1|true.
126 * @type int|bool $show_updated Whether to display the time the bookmark was last updated.
127 * Accepts 1|true or 0|false. Default 0|false.
128 * @type string $include Comma-separated list of bookmark IDs to include. Default empty.
129 * @type string $exclude Comma-separated list of bookmark IDs to exclude. Default empty.
130 * @type string $search Search terms. Will be SQL-formatted with wildcards before and after
131 * and searched in 'link_url', 'link_name' and 'link_description'.
132 * Default empty.
133 * }
134 * @return object[] List of bookmark row objects.
135 */
136function get_bookmarks( $args = '' ) {
137 global $wpdb;
138
139 $defaults = array(
140 'orderby' => 'name',
141 'order' => 'ASC',
142 'limit' => -1,
143 'category' => '',
144 'category_name' => '',
145 'hide_invisible' => 1,
146 'show_updated' => 0,
147 'include' => '',
148 'exclude' => '',
149 'search' => '',
150 );
151
152 $parsed_args = wp_parse_args( $args, $defaults );
153
154 $key = md5( serialize( $parsed_args ) );
155 $cache = wp_cache_get( 'get_bookmarks', 'bookmark' );
156
157 if ( 'rand' !== $parsed_args['orderby'] && $cache ) {
158 if ( is_array( $cache ) && isset( $cache[ $key ] ) ) {
159 $bookmarks = $cache[ $key ];
160 /**
161 * Filters the returned list of bookmarks.
162 *
163 * The first time the hook is evaluated in this file, it returns the cached
164 * bookmarks list. The second evaluation returns a cached bookmarks list if the
165 * link category is passed but does not exist. The third evaluation returns
166 * the full cached results.
167 *
168 * @since 2.1.0
169 *
170 * @see get_bookmarks()
171 *
172 * @param array $bookmarks List of the cached bookmarks.
173 * @param array $parsed_args An array of bookmark query arguments.
174 */
175 return apply_filters( 'get_bookmarks', $bookmarks, $parsed_args );
176 }
177 }
178
179 if ( ! is_array( $cache ) ) {
180 $cache = array();
181 }
182
183 $inclusions = '';
184 if ( ! empty( $parsed_args['include'] ) ) {
185 $parsed_args['exclude'] = ''; // Ignore exclude, category, and category_name params if using include.
186 $parsed_args['category'] = '';
187 $parsed_args['category_name'] = '';
188
189 $inclinks = wp_parse_id_list( $parsed_args['include'] );
190 if ( count( $inclinks ) ) {
191 foreach ( $inclinks as $inclink ) {
192 if ( empty( $inclusions ) ) {
193 $inclusions = ' AND ( link_id = ' . $inclink . ' ';
194 } else {
195 $inclusions .= ' OR link_id = ' . $inclink . ' ';
196 }
197 }
198 }
199 }
200 if ( ! empty( $inclusions ) ) {
201 $inclusions .= ')';
202 }
203
204 $exclusions = '';
205 if ( ! empty( $parsed_args['exclude'] ) ) {
206 $exlinks = wp_parse_id_list( $parsed_args['exclude'] );
207 if ( count( $exlinks ) ) {
208 foreach ( $exlinks as $exlink ) {
209 if ( empty( $exclusions ) ) {
210 $exclusions = ' AND ( link_id <> ' . $exlink . ' ';
211 } else {
212 $exclusions .= ' AND link_id <> ' . $exlink . ' ';
213 }
214 }
215 }
216 }
217 if ( ! empty( $exclusions ) ) {
218 $exclusions .= ')';
219 }
220
221 if ( ! empty( $parsed_args['category_name'] ) ) {
222 $parsed_args['category'] = get_term_by( 'name', $parsed_args['category_name'], 'link_category' );
223 if ( $parsed_args['category'] ) {
224 $parsed_args['category'] = $parsed_args['category']->term_id;
225 } else {
226 $cache[ $key ] = array();
227 wp_cache_set( 'get_bookmarks', $cache, 'bookmark' );
228 /** This filter is documented in wp-includes/bookmark.php */
229 return apply_filters( 'get_bookmarks', array(), $parsed_args );
230 }
231 }
232
233 $search = '';
234 if ( ! empty( $parsed_args['search'] ) ) {
235 $like = '%' . $wpdb->esc_like( $parsed_args['search'] ) . '%';
236 $search = $wpdb->prepare( ' AND ( (link_url LIKE %s) OR (link_name LIKE %s) OR (link_description LIKE %s) ) ', $like, $like, $like );
237 }
238
239 $category_query = '';
240 $join = '';
241 if ( ! empty( $parsed_args['category'] ) ) {
242 $incategories = wp_parse_id_list( $parsed_args['category'] );
243 if ( count( $incategories ) ) {
244 foreach ( $incategories as $incat ) {
245 if ( empty( $category_query ) ) {
246 $category_query = ' AND ( tt.term_id = ' . $incat . ' ';
247 } else {
248 $category_query .= ' OR tt.term_id = ' . $incat . ' ';
249 }
250 }
251 }
252 }
253 if ( ! empty( $category_query ) ) {
254 $category_query .= ") AND taxonomy = 'link_category'";
255 $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";
256 }
257
258 if ( $parsed_args['show_updated'] ) {
259 $recently_updated_test = ', IF (DATE_ADD(link_updated, INTERVAL 120 MINUTE) >= NOW(), 1,0) as recently_updated ';
260 } else {
261 $recently_updated_test = '';
262 }
263
264 $get_updated = ( $parsed_args['show_updated'] ) ? ', UNIX_TIMESTAMP(link_updated) AS link_updated_f ' : '';
265
266 $orderby = strtolower( $parsed_args['orderby'] );
267 $length = '';
268 switch ( $orderby ) {
269 case 'length':
270 $length = ', CHAR_LENGTH(link_name) AS length';
271 break;
272 case 'rand':
273 $orderby = 'rand()';
274 break;
275 case 'link_id':
276 $orderby = "$wpdb->links.link_id";
277 break;
278 default:
279 $orderparams = array();
280 $keys = array( 'link_id', 'link_name', 'link_url', 'link_visible', 'link_rating', 'link_owner', 'link_updated', 'link_notes', 'link_description' );
281 foreach ( explode( ',', $orderby ) as $ordparam ) {
282 $ordparam = trim( $ordparam );
283
284 if ( in_array( 'link_' . $ordparam, $keys, true ) ) {
285 $orderparams[] = 'link_' . $ordparam;
286 } elseif ( in_array( $ordparam, $keys, true ) ) {
287 $orderparams[] = $ordparam;
288 }
289 }
290 $orderby = implode( ',', $orderparams );
291 }
292
293 if ( empty( $orderby ) ) {
294 $orderby = 'link_name';
295 }
296
297 $order = strtoupper( $parsed_args['order'] );
298 if ( '' !== $order && ! in_array( $order, array( 'ASC', 'DESC' ), true ) ) {
299 $order = 'ASC';
300 }
301
302 $visible = '';
303 if ( $parsed_args['hide_invisible'] ) {
304 $visible = "AND link_visible = 'Y'";
305 }
306
307 $query = "SELECT * $length $recently_updated_test $get_updated FROM $wpdb->links $join WHERE 1=1 $visible $category_query";
308 $query .= " $exclusions $inclusions $search";
309 $query .= " ORDER BY $orderby $order";
310 if ( -1 !== $parsed_args['limit'] ) {
311 $query .= ' LIMIT ' . absint( $parsed_args['limit'] );
312 }
313
314 $results = $wpdb->get_results( $query );
315
316 if ( 'rand()' !== $orderby ) {
317 $cache[ $key ] = $results;
318 wp_cache_set( 'get_bookmarks', $cache, 'bookmark' );
319 }
320
321 /** This filter is documented in wp-includes/bookmark.php */
322 return apply_filters( 'get_bookmarks', $results, $parsed_args );
323}
324
325/**
326 * Sanitizes all bookmark fields.
327 *
328 * @since 2.3.0
329 *
330 * @param stdClass|array $bookmark Bookmark row.
331 * @param string $context Optional. How to filter the fields. Default 'display'.
332 * @return stdClass|array Same type as $bookmark but with fields sanitized.
333 */
334function sanitize_bookmark( $bookmark, $context = 'display' ) {
335 $fields = array(
336 'link_id',
337 'link_url',
338 'link_name',
339 'link_image',
340 'link_target',
341 'link_category',
342 'link_description',
343 'link_visible',
344 'link_owner',
345 'link_rating',
346 'link_updated',
347 'link_rel',
348 'link_notes',
349 'link_rss',
350 );
351
352 if ( is_object( $bookmark ) ) {
353 $do_object = true;
354 $link_id = $bookmark->link_id;
355 } else {
356 $do_object = false;
357 $link_id = $bookmark['link_id'];
358 }
359
360 foreach ( $fields as $field ) {
361 if ( $do_object ) {
362 if ( isset( $bookmark->$field ) ) {
363 $bookmark->$field = sanitize_bookmark_field( $field, $bookmark->$field, $link_id, $context );
364 }
365 } else {
366 if ( isset( $bookmark[ $field ] ) ) {
367 $bookmark[ $field ] = sanitize_bookmark_field( $field, $bookmark[ $field ], $link_id, $context );
368 }
369 }
370 }
371
372 return $bookmark;
373}
374
375/**
376 * Sanitizes a bookmark field.
377 *
378 * Sanitizes the bookmark fields based on what the field name is. If the field
379 * has a strict value set, then it will be tested for that, else a more generic
380 * filtering is applied. After the more strict filter is applied, if the `$context`
381 * is 'raw' then the value is immediately return.
382 *
383 * Hooks exist for the more generic cases. With the 'edit' context, the {@see 'edit_$field'}
384 * filter will be called and passed the `$value` and `$bookmark_id` respectively.
385 *
386 * With the 'db' context, the {@see 'pre_$field'} filter is called and passed the value.
387 * The 'display' context is the final context and has the `$field` has the filter name
388 * and is passed the `$value`, `$bookmark_id`, and `$context`, respectively.
389 *
390 * @since 2.3.0
391 *
392 * @param string $field The bookmark field.
393 * @param mixed $value The bookmark field value.
394 * @param int $bookmark_id Bookmark ID.
395 * @param string $context How to filter the field value. Accepts 'raw', 'edit', 'db',
396 * 'display', 'attribute', or 'js'. Default 'display'.
397 * @return mixed The filtered value.
398 */
399function sanitize_bookmark_field( $field, $value, $bookmark_id, $context ) {
400 $int_fields = array( 'link_id', 'link_rating' );
401 if ( in_array( $field, $int_fields, true ) ) {
402 $value = (int) $value;
403 }
404
405 switch ( $field ) {
406 case 'link_category': // array( ints )
407 $value = array_map( 'absint', (array) $value );
408 /*
409 * We return here so that the categories aren't filtered.
410 * The 'link_category' filter is for the name of a link category, not an array of a link's link categories.
411 */
412 return $value;
413
414 case 'link_visible': // bool stored as Y|N
415 $value = preg_replace( '/[^YNyn]/', '', $value );
416 break;
417 case 'link_target': // "enum"
418 $targets = array( '_top', '_blank' );
419 if ( ! in_array( $value, $targets, true ) ) {
420 $value = '';
421 }
422 break;
423 }
424
425 if ( 'raw' === $context ) {
426 return $value;
427 }
428
429 if ( 'edit' === $context ) {
430 /** This filter is documented in wp-includes/post.php */
431 $value = apply_filters( "edit_{$field}", $value, $bookmark_id );
432
433 if ( 'link_notes' === $field ) {
434 $value = esc_html( $value ); // textarea_escaped
435 } else {
436 $value = esc_attr( $value );
437 }
438 } elseif ( 'db' === $context ) {
439 /** This filter is documented in wp-includes/post.php */
440 $value = apply_filters( "pre_{$field}", $value );
441 } else {
442 /** This filter is documented in wp-includes/post.php */
443 $value = apply_filters( "{$field}", $value, $bookmark_id, $context );
444
445 if ( 'attribute' === $context ) {
446 $value = esc_attr( $value );
447 } elseif ( 'js' === $context ) {
448 $value = esc_js( $value );
449 }
450 }
451
452 // Restore the type for integer fields after esc_attr().
453 if ( in_array( $field, $int_fields, true ) ) {
454 $value = (int) $value;
455 }
456
457 return $value;
458}
459
460/**
461 * Deletes the bookmark cache.
462 *
463 * @since 2.7.0
464 *
465 * @param int $bookmark_id Bookmark ID.
466 */
467function clean_bookmark_cache( $bookmark_id ) {
468 wp_cache_delete( $bookmark_id, 'bookmark' );
469 wp_cache_delete( 'get_bookmarks', 'bookmark' );
470 clean_object_term_cache( $bookmark_id, 'link' );
471}
472
Ui Ux Design – Teachers Night Out https://cardgames4educators.com Wed, 16 Oct 2024 22:24:18 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://cardgames4educators.com/wp-content/uploads/2024/06/cropped-Card-4-Educators-logo-32x32.png Ui Ux Design – Teachers Night Out https://cardgames4educators.com 32 32 Masters In English How English Speaker https://cardgames4educators.com/masters-in-english-how-english-speaker/ https://cardgames4educators.com/masters-in-english-how-english-speaker/#comments Mon, 27 May 2024 08:54:45 +0000 https://themexriver.com/wp/kadu/?p=1

Erat himenaeos neque id sagittis massa. Hac suscipit pulvinar dignissim platea magnis eu. Don tellus a pharetra inceptos efficitur dui pulvinar. Feugiat facilisis penatibus pulvinar nunc dictumst donec odio platea habitasse. Lacus porta dolor purus elit ante bibendum tortor netus taciti nullam cubilia. Erat per suspendisse placerat morbi egestas pulvinar bibendum sollicitudin nec. Euismod cubilia eleifend velit himenaeos sodales lectus. Leo maximus cras ac porttitor aliquam torquent pulvinar odio volutpat parturient. Quisque risus finibus suspendisse mus purus magnis facilisi condimentum consectetur dui. Curae elit suspendisse cursus vehicula.

Turpis taciti class non vel pretium quis pulvinar tempor lobortis nunc. Libero phasellus parturient sapien volutpat malesuada ornare. Cubilia dignissim sollicitudin rhoncus lacinia maximus. Cras lorem fermentum bibendum pellentesque nisl etiam ligula enim cubilia. Vulputate pede sapien torquent montes tempus malesuada in mattis dis turpis vitae. Porta est tempor ex eget feugiat vulputate ipsum. Justo nec iaculis habitant diam arcu fermentum.

We offer comprehen sive emplo ment services such as assistance wit employer compliance.Our company is your strategic HR partner as instead of HR. john smithson

Cubilia dignissim sollicitudin rhoncus lacinia maximus. Cras lorem fermentum bibendum pellentesque nisl etiam ligula enim cubilia. Vulputate pede sapien torquent montes tempus malesuada in mattis dis turpis vitae.

Exploring Learning Landscapes in Academic

Feugiat facilisis penatibus pulvinar nunc dictumst donec odio platea habitasse. Lacus porta dolor purus elit ante bibendum tortor netus taciti nullam cubilia. Erat per suspendisse placerat morbi egestas pulvinar bibendum sollicitudin nec. Euismod cubilia eleifend velit himenaeos sodales lectus. Leo maximus cras ac porttitor aliquam torquent.

]]>
https://cardgames4educators.com/masters-in-english-how-english-speaker/feed/ 1