/ Плагины / Несколько авторов записи

Несколько авторов записи

26.03.2021

140

Рассмотрим функционал по назначению записям нескольких авторов. Сделать это возможно плагином Co-Authors Plus (30 000).

Соавторство сохраняется интересным образом, не в БД а в кэше (wp_cache_set). А сам плагин игнорирует стандартное значение author и переопределяет его на свои значения. Например если назначить автора плагином, потом отключить его, переназначить автора и снова включить, то автор останется прежним.

Вывести авторов записи:

coauthors();
coauthors_posts_links();
coauthors_links();
if ( function_exists( 'coauthors_posts_links' ) ) {
    coauthors_posts_links();
} else {
    the_author_posts_link();
}
Получить все записи автора

Вывести все записи автора

Почему то вывод цикла get_posts с аргументом ‘author’ не выводит записи в которых текущий пользователь является не главным а добавленным автором. Но тот же запрос только через WP_Query работает корректно. Пример:

$args = array( 
	'posts_per_page' => -1,
	'author' => $current_user->ID
);

$theme_post_query = new WP_Query( $args );

while( $theme_post_query->have_posts() ) : 
$theme_post_query->the_post();

	echo $post->ID;

endwhile;

Получить массив ID и имен авторов поста

$coauthors = get_coauthors($post->ID);
foreach ($coauthors as $coauthor) {
	$authors_names[] = $coauthor->display_name;
	$authors_ids[] = $coauthor->ID;
}

// перевод в строку для вывода
$authors_names_string = implode(', ', $authors_names);

Вывод только авторских записей

// Показывать автору только собственные записи
function posts_for_current_author($query) {
	global $pagenow;
  
	if( 'edit.php' != $pagenow || !$query->is_admin )
		return $query;

	if( !current_user_can( 'manage_options' ) ) {
		global $user_ID;
		$query->set('author', $user_ID );
	}
	return $query;
}
add_filter('pre_get_posts', 'posts_for_current_author');

Записи в соавторстве, с данной функцией, выводится не будут. Если у автора нет ни одной своей записи. Если хотя бы одна запись есть, то записи с соавторством также начнут выводится.

Поделиться в соц. сетях:

  • Комментарии
  • Вложения

Добавить комментарий

Пока нет комментариев. Будь первым!

Несколько авторов записи
Предоплата товара
Рекомендации для васПредоплата товараOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.