检索书签数据

原型

get_bookmark( int|stdClass $bookmark, string $output = OBJECT, string $filter = 'raw' )

参数

$bookmark (int|stdClass) (Required)

$output (string) (Optional)  所需的返回类型。 OBJECT,ARRAY_A或ARRAY_N之一,分别对应于stdClass对象,关联数组或数值数组。

$filter (string) (Optional)  

返回值

(array|object|null)  返回的类型取决于$ output值。

源文件

路径:wp-includes/bookmark.php

<?php
...
function get_bookmark($bookmark, $output = OBJECT, $filter = 'raw') {
	global $wpdb;
	if ( empty($bookmark) ) {
		if ( isset($GLOBALS['link']) )
			$_bookmark = & $GLOBALS['link'];
		else
			$_bookmark = null;
	} elseif ( is_object($bookmark) ) {
		wp_cache_add($bookmark->link_id, $bookmark, 'bookmark');
		$_bookmark = $bookmark;
	} else {
		if ( isset($GLOBALS['link']) && ($GLOBALS['link']->link_id == $bookmark) ) {
			$_bookmark = & $GLOBALS['link'];
		} elseif ( ! $_bookmark = wp_cache_get($bookmark, 'bookmark') ) {
			$_bookmark = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->links WHERE link_id = %d LIMIT 1", $bookmark));
			if ( $_bookmark ) {
				$_bookmark->link_category = array_unique( wp_get_object_terms( $_bookmark->link_id, 'link_category', array( 'fields' => 'ids' ) ) );
				wp_cache_add( $_bookmark->link_id, $_bookmark, 'bookmark' );
			}
		}
	}
	if ( ! $_bookmark )
		return $_bookmark;
	$_bookmark = sanitize_bookmark($_bookmark, $filter);
	if ( $output == OBJECT ) {
		return $_bookmark;
	} elseif ( $output == ARRAY_A ) {
		return get_object_vars($_bookmark);
	} elseif ( $output == ARRAY_N ) {
		return array_values(get_object_vars($_bookmark));
	} else {
		return $_bookmark;
	}
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/get_bookmark/