get_bookmark

Получает данные ссылки из блогролла, в виде массива. Нужно указать ID ссылки.

Хуков нет.

Возвращает

массив/объект данных.

Использование

<?php get_bookmark( $bookmark, $output, $filter ) ?>
$bookmark(число) (обязательный)
ID ссылки из блогролла (админка -> ссылки -> ссылки).
По умолчанию: нет
$output(строка)
В каком виде возвращать результат. Может быть:
OBJECT — в виде объекта;
ARRAY_N — в виде массива;
ARRAY_A — в виде ассоциативного массива.
По умолчанию: OBJECT
$filter(строка)
Фильтр (???).
По умолчанию: ‘raw’

Примеры

  1. Базовый пример.
    Получим данные ссылки 13 и выведем её УРЛ:
<?php $link = get_bookmark(13, ARRAY_N);
echo $link->link_url; ?>

В этом примере переменная $link будет содержать следующий массив данных:

<?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;
	}
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *