wordpress技巧如何显示所有的友情链接

2024年07月08日 建站教程

如何利用wordpress自带的函数显示所有的友情链接,下面web建站小编给大家简单介绍一下wp_list_bookmarks 函数的运用方法!

具体调用:

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

函数源码:

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']
      );

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

  $html = apply_filters( 'wp_list_bookmarks', $output );

  if ( $parsed_args['echo'] ) {
    echo $html;
  } else {
    return $html;
  }
}

参数说明:

参数名 描述
order 升序 ASC 或 降序 DESC,默认 ASC。
limit -1 表示全部,1+整数表示要显示的个数。
category 以逗号分隔的类别ID列表,其中包含来自的链接。
category_name 要按名称检索链接的类别。
hide_invisible 是否显示或隐藏标记为“不可见”的链接。接受1|true或0|false。默认值1|true。
show_updated 是否显示书签上次更新的时间。接受1|true或0|false。默认值0|false。
echo 是回显还是返回格式化的书签。接受1|true(回显)或0|false(返回)。默认值1|true。
categorize 是显示按类别列出的链接,还是显示单列中的链接。接受1|true(按类别)或0|false(一列)。默认值1|true。
show_description 是否显示书签说明。接受1|true或0|false。默认值0|false。
title_li 链接出现之前要显示的内容。默认的“书签”。
title_before 要在$title_li字符串前附加的HTML或文本。默认值
title_after 要附加到$title_li字符串中的HTML或文本。默认。
class 用于$title_li的CSS类或类数组。默认“linkcat”。
category_before 如果$category为true,则在$title_before之前要准备的HTML或文本。字符串必须包含“%id”和“%class”,才能继承类别id和用于设置主题格式的$class参数。默认

category_after 如果$category为true,则要附加到$title_after的HTML或文本。默认。
category_orderby 如果$category为true,如何根据术语方案对书签类别进行排序。默认的“名称”。
category_order 如果$category为true,则按升序还是降序排列类别。接受“ASC”(升序)或“DESC”(降序)。默认为“ASC”。

本文链接:http://so.lmcjl.com/news/8058/

展开阅读全文
相关内容