wp_list_bookmarks

函数
wp_list_bookmarks ( $args = '' )
参数
  • (string|array) $args { Optional. String or array of arguments to list bookmarks. @type string $orderby How to order the links by. Accepts post fields. Default 'name'. @type string $order Whether to order bookmarks in ascending or descending order. Accepts 'ASC' (ascending) or 'DESC' (descending). Default 'ASC'. @type int $limit Amount of bookmarks to display. Accepts 1+ or -1 for all. Default -1. @type string $category Comma-separated list of category IDs to include links from. Default empty. @type string $category_name Category to retrieve links for by name. Default empty. @type int|bool $hide_invisible Whether to show or hide links marked as 'invisible'. Accepts 1|true or 0|false. Default 1|true. @type int|bool $show_updated Whether to display the time the bookmark was last updated. Accepts 1|true or 0|false. Default 0|false. @type int|bool $echo Whether to echo or return the formatted bookmarks. Accepts 1|true (echo) or 0|false (return). Default 1|true. @type int|bool $categorize Whether to show links listed by category or in a single column. Accepts 1|true (by category) or 0|false (one column). Default 1|true. @type int|bool $show_description Whether to show the bookmark descriptions. Accepts 1|true or 0|false. Default 0|false. @type string $title_li What to show before the links appear. Default 'Bookmarks'. @type string $title_before The HTML or text to prepend to the $title_li string. Default '<h2>'. @type string $title_after The HTML or text to append to the $title_li string. Default '</h2>'. @type string|array $class The CSS class or an array of classes to use for the $title_li. Default 'linkcat'. @type string $category_before The HTML or text to prepend to $title_before if $categorize is true. String must contain '%id' and '%class' to inherit the category ID and the $class argument used for formatting in themes. Default '<li id="%id" class="%class">'. @type string $category_after The HTML or text to append to $title_after if $categorize is true. Default '</li>'. @type string $category_orderby How to order the bookmark category based on term scheme if $categorize is true. Default 'name'. @type string $category_order Whether to order categories in ascending or descending order if $categorize is true. Accepts 'ASC' (ascending) or 'DESC' (descending). Default 'ASC'. }
    Required:
    Default: (empty)
返回值
  • (void|string) Void if 'echo' argument is true, HTML list of bookmarks if 'echo' is false.
相关
  • _walk_bookmarks()
定义位置
相关方法
_walk_bookmarksget_bookmarkswp_list_catswp_list_authorsget_bookmark
引入
2.1.0
弃用
-

wp_list_bookmarks: 这个函数使用一组你可以自定义的参数来检索和显示书签列表。它为在WordPress网站上以列表形式显示链接提供了一种方便的方法。

检索或呼应所有的书签。

默认参数列表如下。

这些选项定义了如果’categorize’为1,类别名称将如何在显示类别链接之前出现。如果’categorize’为0,那么它将只为’title_li’字符串显示,而且只有在’title_li’不是空的情况下。

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 .= "nt<ul class='xoxo blogroll'>n";
			$output .= _walk_bookmarks( $bookmarks, $parsed_args );
			$output .= "nt</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 .= "nt<ul class='xoxo blogroll'>n";
				$output .= _walk_bookmarks( $bookmarks, $parsed_args );
				$output .= "nt</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;
	}
}

常见问题

FAQs
查看更多 >