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 ‘

    ‘. @type string $title_after The HTML or text to append to the $title_li string. Default ‘

    ‘. @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 ‘

  • ‘. @type string $category_after The HTML or text to append to $title_after if $categorize is true. Default ‘
  • ‘. @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()
定义位置
  • wp-includes/bookmark-template.php
    , line 219
引入
2.1.0
弃用

检索或呼应所有的书签。

默认参数列表如下。

这些选项定义了如果’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'     => '

', 'title_after' => '

', 'category_orderby' => 'name', 'category_order' => 'ASC', 'class' => 'linkcat', 'category_before' => '
  • ‘,
    ‘category_after’ => ‘
  • ‘,
    );

    $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

      n”;
      $output .= _walk_bookmarks( $bookmarks, $parsed_args );
      $output .= “nt

    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

      n”;
      $output .= _walk_bookmarks( $bookmarks, $parsed_args );
      $output .= “nt

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