Если у вас есть блог, в котором пишут несколько авторов, то можно увеличить его информативность, показав, кто из авторов недавно работал на сайте, редактируя и публикуя материалы. Для этого можно внедрить функцию, отображающую авторов за определенное время.
Для этого нужно вставить в файл functions.php:
function get_latest_authors( $number_of_authors = 10 ) { if ( false === ( $latest_authors = get_transient( 'latest_authors' ) ) ) { $args = array( 'orderby' => 'modified', 'post_type' => 'post', 'post_status' => 'publish', 'numberposts' => '-1' ); $count = 1; $recent_posts = wp_get_recent_posts( $args ); $latest_authors_array = array(); foreach( $recent_posts as $the_post ) { if ( $count == $number_of_authors ) break; if ( ! in_array( $the_post['post_author'], $latest_authors_array ) ) { $latest_authors_array[] =$the_post['post_author']; $count++; } } $latest_authors = '<ul class="cdc-latest-authors">'; foreach( $latest_authors_array as $author_id ) { $latest_authors .= '<li>'.get_the_author_meta( 'display_name', $author_id ).'</li>'; } $latest_authors .= '</ul>'; set_transient( 'latest_authors', $latest_authors, 60 * 60 * 1 ); // 60 секунд * 60 минут * 1 час = 1 час } return $latest_authors; }
Эта функция выводит 10 авторов, которые последними редактировали или публиковали посты. Количество авторов задается параметром [code inline=»yes»]$number_of_authors = 10 — вы можете изменить его.
Чтобы функция не терзала базу данных каждый раз при формировании страницы, в ней задается период опросов set_transient = 60 секунд * 60 минут * 1 час = 1 час — его вы тоже можете изменить.
Так же можно изменить и количество проверяемых постов — если у вас большая активность, и за день редактируется большое количество постов (допустим, 100-200), то выуживание их статуса из базы данных каждый час может вызвать повышение нагрузки на хостинг. Чтобы этого не произошло, можно ограничить это количество, указав [code inline=»yes»]’numberposts’ => ‘-1’ не -1 (проверять все посты), а, скажем, 50 — будут проанализированы только 50 постов, которые были отредактированы последними. Однако тут может возникнуть ситуация, что в этих 50 постах не наберется запланированное количество авторов (10) — тут нужно нужно поэкспериментировать. Если же количество постов в районе не сотен, а десятков, то можно сканировать и все посты подряд.
Для того, чтобы вывести список авторов, нужно использовать:
Ник каждого автора будет ссылкой на архив постов, им написанных.
