wp_list_bookmarks

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

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

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

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

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

<?php wp_list_bookmarks( $args ); ?>

Параметры по умолчанию

$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 ,
);
$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

Примеры

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

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

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

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

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

<?php wp_list_bookmarks('title_li=&categorize=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'); ?>

#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.

Код из


wp-includes/bookmark-template.php

WP 4.7.2

<?php
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>'
	);

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

	$output = '';

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

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

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

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

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

	/**
	 * 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 ( ! $r['echo'] ) {
		return $html;
	}
	echo $html;
}

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


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

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