wp_list_authors() WP 1.2.0

Виводить список авторів блогу як посилання на їхні пости, якщо пости існують.

Також можна вказати висновок посилання на RSS-фід кожного автора та кількість записів у кожного автора.

Хуків немає.

Повертає

null|Строку. Нічого за echo = true. Список авторів при echo = false.

Шаблон використання

$ args = array (
	'orderby' => 'name',
	'order' => 'ASC',
	'number' => null,
	'optioncount' => false,
	'exclude_admin' => true,
	'show_fullname' => false,
	'hide_empty' => true,
	'echo' => true,
	'feed' => '',
	'feed_image' => '',
	'feed_type' => '',
	'style' => list,
	'html' => ''
);

wp_list_authors ($ args);

Використання

<?php wp_list_authors( $args ); ?>
$args
(масив)

Параметри, що відповідають за висновок.
За замовчуванням: встановлені

  • orderby (рядок)
    Поле по якому сортуватиметься результат. З версії 3.1. Доступні поля:

    • name– сортувати по імені, що відображається (поле display_name в таблиці users – за замовчуванням).
    • email– за адресою емаїл (поле таблиці user_email ).
    • url– за адресою URL user_url .
    • registered– По полю user_registered .
    • id– за ID користувача.
    • user_login– За логіном користувача (поле user_login ).
    • post_count– За кількістю записів у користувача.
      За замовчуванням: ‘name’
  • order (рядок)
    У якому порядку сортувати: ASC– по порядку, DESC– у зворотному порядку. З версії 3.1.
    За замовчуванням: ‘ASC’

  • number (число)
    Максимальна кількість користувачів, яка буде показана (ліміт). З версії 3.1.
    За замовчуванням: без обмежень

  • optioncount (логічний)
    Показувати кількість постів кожного користувача: 1 (true) – показувати, 0 (false) – не показувати.
    Типово: false

  • exclude_admin (логічний)
    Виключити зі списку реєстраційний запис з логіном admin: 1 (true) – виключити, 0 (false) – не виключати (за замовчуванням).
    Типово: false

  • show_fullname (логічний)
    Показувати повне ім’я (ім’я, прізвище) автора, якщо стоїть false, буде показано ім’я, яке вибрано для відображення.
    Типово: false

  • hide_empty (логічний)
    Не показувати авторів, у яких немає записів: 1 (true) – показувати, 0 (false) – не показувати.
    Типово: true

  • echo (логічний)
    Виводити на екран або повертати для обробки: 1 (true) – виводити, 0 (false) – повертати.
    Типово: true

  • feed (рядок)
    Текст для посилання на фід кожного автора, якщо текст не переданий на фід не буде виводитися.
    За замовчуванням: ”

  • feed_image (рядок)
    Нехай/посилання на картинку, яка буде показана як посилання на фід кожного автора. Альтернатива параметру feed.
    За замовчуванням: ”

  • feed_type (рядок)
    Тип фіда. Порожній рядок – фід встановлений на блозі за промовчанням, можливі значення: rss2, atom, rss, rdf.
    За замовчуванням: ”

  • style (рядок)
    У якому форматі відображатиметься список. За замовчуванням виводиться у форматі list– ul список, якщо вказати none, то автори будуть показані через кому. Цей параметр працює, лише якщо увімкнено параметр html.
    За замовчуванням: ‘list’

  • HTML (логічний)
    Включає або вимикає форматування HTML. За замовчуванням форматування увімкнено (true), якщо його вимкнути (false), то список буде виведений як посилання на авторів через кому.
    Типово: true

Приклади

0

#1 Отримаємо список авторів сайту

Список виводить авторів сайту, показуючи повне ім’я ( show_fullname=1 ) та кількість записів у кожного автора ( optioncount=1 ). Сортування відбувається у зворотному порядку ( order=DESC ) за кількістю записів кожного автора ( orderby=post_count ). Висновок обмежений трьома авторами ( number=3 ). Так само, за замовчуванням зі списку виключено автора з ніком admin , виключені автори, що не мають записів і не показуються посилання на RSS-фіди.

<?php wp_list_authors('show_fullname=1&optioncount=1&orderby=post_count&order=DESC&number=3'); ?>

В результаті ми отримаємо щось подібне:

Andrew Anderson (48)
Harriett Smith (42)
Sally Smith (29)

нотатки

  • Global. wpdb. $wpdb WordPress database abstraction object.

список змін

З версії 1.2.0Введено.

wp list authors WP 6.0.2

function wp_list_authors( $args = '' ) { Global $wpdb; $defaults = array( 'orderby' => 'name', 'order' => 'ASC', 'number' => '', 'optioncount' => false, 'exclude_admin' => true, 'show_fullname' => false, 'hide_empty' => true, 'feed' => '', 'feed_image' => '', 'feed_type' => '', 'echo' => true, 'style' => 'list', 'html' => true, 'exclude' => '', 'include' => '', ); $ args = wp_parse_args ($ args, $ defaults); $ return = ''; $query_args = wp_array_slice_assoc( $args, array( 'orderby', 'order', 'number', 'exclude', 'include' ) ); $query_args['fields'] = 'ids'; $ authors = get_users ($ query_args); $author_count = array(); foreach ((array) $wpdb->get_results( "SELECT DISTINCT post_author, COUNT(ID) AS count FROM $wpdb->posts WHERE " . get_private_posts_cap_sql( 'post' ) . ' GROUP BY post_author' ) as $row ) $author_count[ $row->post_author ] = $row->count; } foreach ( $authors as $author_id ) { $posts = isset($author_count[$author_id])? $author_count[$author_id]: 0; if ( ! $posts && $args['hide_empty'] ) { continue; } $ author = get_userdata ($ author_id); if ( $args['exclude_admin'] && 'admin' === $author->display_name ) { continue; } if ( $args['show_fullname'] && $author->first_name && $author->last_name ) { $name = "$author->first_name $author->last_name"; } else { $name = $author->display_name; } if ( ! $args['html'] ) { $return. = $name. ', '; continue; // Не потрібно, щоб отримати процес HTML. } if ( 'list' === $args['style'] ) { $return .= '<li>'; } $link = sprintf( '<a href="%1$s" title="%2$s">%3$s</a>', esc_url( get_author_posts_url( $author->ID, $author->user_nicename ) ), /* translators: %s: Author's display name. */ esc_attr( sprintf( __( 'Posts by %s' ), ​​$author->display_name ) ), $name ); if ( ! empty( $args['feed_image'] ) || ! empty( $args['feed'] ) ) { $link. = ''; if ( empty( $args['feed_image'] ) ) { $link .= '('; } $link .= '<a href="' . get_author_feed_link( $author->ID, $args['feed_type'] ) . '"'; $ alt = ''; if ( ! empty( $args['feed'] ) ) { $alt = 'alt="' . esc_attr( $args['feed'] ) . '"'; $name = $args['feed']; } $link .= '>'; if ( ! empty( $args['feed_image'] ) ) { $link .= '<img src="' . esc_url( $args['feed_image'] ) . '" style="border: none;"' . $alt . '/>'; } else { $link.=$name; } $link .= '</a>'; if ( empty( $args['feed_image'] ) ) { $link .= ')'; } } if ( $args['optioncount'] ) { $link .= '(' . $posts . ')'; } $return. = $link; $return .= ( 'list' === $args['style'] ) ? '</li>' : ', '; } $ return = rtrim ($ return, ', '); if ( $args['echo'] ) { echo $return; } else { return $return; } }

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *