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 адреса не оприлюднюватиметься. Обов’язкові поля позначені *