WordPress как на ладони

wp_list_bookmarks()WP 2.1.0

Выводит на экран список ссылок, указанных на странице "Администрирование > ссылки".

Этот тег шаблона позволяет контролировать какие ссылки выводить, как их сортировать и т.д.

Заметка: wp_list_bookmarks() полностью заменяет ныне запрещенные функции get_links_list() и get_links().

Хуки из функции

Возвращает

null|Строку. или выводит на экран HTML код списка ссылок.

Шаблон использования

<?php
$args = array(
	'orderby'          => 'name',
	'order'            => 'ASC',
	'limit'            => -1,
	'category'         => '',
	'exclude_category' => '',
	'category_name'    => '',
	'category_orderby' => 'name',
	'category_order'   => 'ASC',
	'categorize'       => 1,
	'title_li'         => __('Bookmarks'),
	'class'            => 'linkcat',
	'show_private'     => 0 ,
	'include'          => '',
	'exclude'          => '',
	'before'           => '<li>',
	'after'            => '</li>',
	'category_before'  => '<li id=%id class=%class>',
	'category_after'   => '</li>' ,
	'title_before'     => '<h2>',
	'title_after'      => '</h2>',
	'link_before'      => '',
	'link_after'       => '',
	'between'          => '',
	'show_images'      => 1,
	'show_description' => 0,
	'show_name'        => 0,
	'show_rating'      => 0,
	'hide_invisible'   => 1,
	'echo'             => 1 ,
);

wp_list_bookmarks( $args );
?>

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

<?php wp_list_bookmarks( $args ); ?>
$args(строка/массив)
Массив аргументов, в соответствии с которыми будет сформирован список (см.ниже).
По умолчанию: параметры по умолчанию

Аргументы параметра $args

categorize(логический)
Разделять ссылки по категориям или нет. По умолчанию "да" (true), т.е. если у ссылок имеются 2 или более категорий, то они будут визуально разбиты.
По умолчанию: true
category(строка)
ID категорий (через запятую), ссылки которых нужно показать. По умолчанию показываются ссылки из всех категорий.
По умолчанию: ''
exclude_category(строка)
ID категорий (через запятую), ссылки которых нужно исключить из показа. По умолчанию выводятся все ссылки.
По умолчанию: ''
category_name(строка)
Название категории ссылки которой нужно показать.
По умолчанию: ''
category_before(строка)
Текст, который нужно показать перед каждой категорией. По умолчанию: '<li id="[category id]" class="linkcat">'.
По умолчанию: '<li id="[category id]" class="linkcat">'
category_after(строка)
Текст, который будет показан после каждой категории. По умолчанию: '</li>'.
По умолчанию: '</li>'
class(строка)
Класс который будет указан для каждой категории ссылок.
По умолчанию: 'linkcat'
category_orderby(строка)

Ключ по которому сортировать категории ссылок. Может быть:

  • name - сортировать по названию - по умолчанию;
  • id - сортировать по ID категоирй;
  • slug - по слагу (альтернативному названию);
  • count - по количеству ссылок в категории;
  • term_group (не используется).

По умолчанию: 'name'

category_order(строка)

Направление сортировки, может быть:

  • ASC - по порядку;
  • DESC - в обратном порядке.

По умолчанию: 'ASC'

title_li(строка)
Текст перед заголовком списка ссылок. По умолчанию __('Bookmarks'). __('') используется для локализации.
Используется только, когда параметр "categorize" установлен в false (в противном случае, заголовками станут названия категорий).
Если установить этот параметр в false, то заголовок не будет использоваться, так же список не будет "обвернут" тегами <ul>, </ul> (этот эффект так же работает только когда параметр "categorize" установлен в false).
По умолчанию: '__('Bookmarks')'
title_before(строка)
Текст перед заголовком. Работает, если "categorize=1" или установлен текст для параметра title_li.
По умолчанию: '<h2>'
title_after(строка)
Текст после заголовка. Работает, если "categorize=1" или установлен текст для параметра title_li.
По умолчанию: '</h2>'
show_private(логический)
Категория и ссылки должны быть показаны, даже если категория имеет статус "личная". По умолчанию ссылки из личных категорий не будут показаны (false).
По умолчанию: false
include(строка)
ID ссылок (через запятую). Например, 'include=1,3,6' означает список будет состоять из ссылок 1,3,6.
Этот параметр отключает параметры category, category_name и exclude.
По умолчанию: ''
exclude(строка)
ID ссылок, которые нужно исключить из показа в списке.
По умолчанию: ''
orderby(строка)

Ключ по которому будет сортироваться список ссылок. Можно указывать несколько ключей через запятую. Возможные значения:

  • id - сортировка по ID;
  • url - по значению поля url;
  • name - по имени - по умолчанию;
  • target
  • description - по описанию;
  • owner - по пользователю, который добавил ссылку на странице управления ссылками;
  • rating - по рейтингу;
  • updated
  • rel
  • notes
  • rss
  • length - по длине названия ссылки;
  • rand - вывести ссылки в случайном порядке.

По умолчанию: 'name'

order(строка)
Направление сортировки ссылок. ASC - по продяку, DESC - в обратном порядке.
По умолчанию: 'ASC'
limit(число)
Максимальное количество ссылок, которое будет показано. -1 - снимает ограничения и будут показаны все ссылки.
По умолчанию: '-1'
before(строка)
Текст, который будет показан перед каждой ссылкой. По умолчанию <li>.
По умолчанию: '<li>'
after(строка)
Текст, который будет показан после каждой ссылки. По умолчанию </li>.
По умолчанию: '</li>'
link_before(строка)
Текст, который будет показан перед анкором каждой ссылки. Внутри тега <a>. Параметр добавлен в версии 2.7.
По умолчанию: ''
link_after(строка)
Текст, который будет показан после анкора каждой ссылки. Внутри тега <a>. Параметр добавлен в версии 2.7.
По умолчанию: ''
between(строка)
Текст, который будет расположен межу каждой ссылкой/картинкой и описанием ссылки. По умолчанию \n (новая строка).
По умолчанию: "\n"
show_images(логический)
Показывать (1) картинку к ссылки или нет (0). По умолчанию картинка показывается если она есть - 1/true.
По умолчанию: '1'
show_description(логический)
Показывать описание к ссылке (1) или нет (0). Действительно, когда show_images = 0 или картинка не определена. По умолчанию 0 - не показывать описание.
show_name(логический)
Показывать текст ссылки (1) или нет (0). Работает, когда show_images = 1. (добавлен в версии 2.7).
show_rating(логический)
Показывать рейтинг (1) или нет (0).
show_updated(логический)
Показывать (1) или нет (0) дату обновления. (как работает этот параметр я не разобрался).
По умолчанию: ''
hide_invisible(логический)
Показывать ссылки, даже если в параметре "видимость" установлено "нет". Показ управляется настройками админ-панели (1) или нет (0).
По умолчанию: 1 - показ управляется из админ-панели
echo(логический)
Выводить результат на экран (1) или возвращать для обработки (0).
По умолчанию: true

Примеры

0

#1 Обычный список ссылок

Показать список ссылок, заголовком которого будет "Ссылки", пункты списка будут "обвернуты" в тег <li>, заголовок в тег <h2>.

<?php wp_list_bookmarks('title_li=&category_before=&category_after='); ?>
0

#2 Удаление заголовка у списка ссылок

Пример удаления заголовка у списка. Полезно, когда нужно установить свой заголовок.

<?php wp_list_bookmarks('title_li=&categorize=0'); ?>
0

#3 Ссылки из указанной категории

Пример вывода ссылок из категории ссылок 2 (category=2), обернутых в тег span (before=<span>&after=</span> ), с использованием картинок для каждой ссылки (show_images=1), выключенным показом описания (show_description=0) и отсортированных по самой ссылке (orderby=url).

<?php wp_list_bookmarks('categorize=0&category=2&before=<span>&after=</span>&show_images=1&show_description=0&orderby=url'); ?>
0

#4 Замена заголовка картинкой

Пример того, как можно заменить заголовок списка картинкой.

<?php wp_list_bookmarks('categorize=0&title_before=&title_after=&title_li=<img src="'.get_bloginfo("stylesheet_directory").'/images/blogroll.gif" alt="blogroll" />'); ?>

С версии 2.2.0 добавлен параметр class.
С версии 2.7.0 добавлены параметры link_before, link_after и show_name.

Заметки

Список изменений

С версии 2.1.0 Введена.

Код wp_list_bookmarks() WP 6.4.3

function wp_list_bookmarks( $args = '' ) {
	$defaults = array(
		'orderby'          => 'name',
		'order'            => 'ASC',
		'limit'            => -1,
		'category'         => '',
		'exclude_category' => '',
		'category_name'    => '',
		'hide_invisible'   => 1,
		'show_updated'     => 0,
		'echo'             => 1,
		'categorize'       => 1,
		'title_li'         => __( 'Bookmarks' ),
		'title_before'     => '<h2>',
		'title_after'      => '</h2>',
		'category_orderby' => 'name',
		'category_order'   => 'ASC',
		'class'            => 'linkcat',
		'category_before'  => '<li id="%id" class="%class">',
		'category_after'   => '</li>',
	);

	$parsed_args = wp_parse_args( $args, $defaults );

	$output = '';

	if ( ! is_array( $parsed_args['class'] ) ) {
		$parsed_args['class'] = explode( ' ', $parsed_args['class'] );
	}
	$parsed_args['class'] = array_map( 'sanitize_html_class', $parsed_args['class'] );
	$parsed_args['class'] = trim( implode( ' ', $parsed_args['class'] ) );

	if ( $parsed_args['categorize'] ) {
		$cats = get_terms(
			array(
				'taxonomy'     => 'link_category',
				'name__like'   => $parsed_args['category_name'],
				'include'      => $parsed_args['category'],
				'exclude'      => $parsed_args['exclude_category'],
				'orderby'      => $parsed_args['category_orderby'],
				'order'        => $parsed_args['category_order'],
				'hierarchical' => 0,
			)
		);
		if ( empty( $cats ) ) {
			$parsed_args['categorize'] = false;
		}
	}

	if ( $parsed_args['categorize'] ) {
		// Split the bookmarks into ul's for each category.
		foreach ( (array) $cats as $cat ) {
			$params    = array_merge( $parsed_args, array( 'category' => $cat->term_id ) );
			$bookmarks = get_bookmarks( $params );
			if ( empty( $bookmarks ) ) {
				continue;
			}
			$output .= str_replace(
				array( '%id', '%class' ),
				array( "linkcat-$cat->term_id", $parsed_args['class'] ),
				$parsed_args['category_before']
			);
			/**
			 * Filters the category name.
			 *
			 * @since 2.2.0
			 *
			 * @param string $cat_name The category name.
			 */
			$catname = apply_filters( 'link_category', $cat->name );

			$output .= $parsed_args['title_before'];
			$output .= $catname;
			$output .= $parsed_args['title_after'];
			$output .= "\n\t<ul class='xoxo blogroll'>\n";
			$output .= _walk_bookmarks( $bookmarks, $parsed_args );
			$output .= "\n\t</ul>\n";
			$output .= $parsed_args['category_after'] . "\n";
		}
	} else {
		// Output one single list using title_li for the title.
		$bookmarks = get_bookmarks( $parsed_args );

		if ( ! empty( $bookmarks ) ) {
			if ( ! empty( $parsed_args['title_li'] ) ) {
				$output .= str_replace(
					array( '%id', '%class' ),
					array( 'linkcat-' . $parsed_args['category'], $parsed_args['class'] ),
					$parsed_args['category_before']
				);
				$output .= $parsed_args['title_before'];
				$output .= $parsed_args['title_li'];
				$output .= $parsed_args['title_after'];
				$output .= "\n\t<ul class='xoxo blogroll'>\n";
				$output .= _walk_bookmarks( $bookmarks, $parsed_args );
				$output .= "\n\t</ul>\n";
				$output .= $parsed_args['category_after'] . "\n";
			} else {
				$output .= _walk_bookmarks( $bookmarks, $parsed_args );
			}
		}
	}

	/**
	 * Filters the bookmarks list before it is echoed or returned.
	 *
	 * @since 2.5.0
	 *
	 * @param string $html The HTML list of bookmarks.
	 */
	$html = apply_filters( 'wp_list_bookmarks', $output );

	if ( $parsed_args['echo'] ) {
		echo $html;
	} else {
		return $html;
	}
}
3 комментария
    Войти