Как вывести другие посты автора публикации без плагинов

👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

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

Можно создать функцию, которая с помощью шорткода будет выводить список других публикаций автора. Такой шорткод можно вставлять прямо в пост.
Откройте файл functions.php и вставьте в него такой код:

function latest_posts_by_author($array) {
extract(shortcode_atts(array('author' => 'admin', 'show' => 5), $array));

global $wpdb;
$table = $wpdb->prefix . 'users';
$result = $wpdb->get_results('SELECT ID FROM '.$table.' WHERE user_login = "'.$author.'"');
$id = $result[0]->ID;
$table = $wpdb->prefix . 'posts';
$result = $wpdb->get_results('SELECT * FROM '.$table.' WHERE post_author = '.$id.' AND post_status = "publish" AND post_type = "post" ORDER BY post_date DESC');
$i = 0;
$html = '<ul>';
foreach ($result as $numpost) {
$html .= '<li><a>guid.'">'.$numpost->post_title.'</a></li>';
$i++;
if($i == $show){
break;
}
}
$html .= '</ul>';

return $html;
}

add_shortcode('latestbyauthor', 'latest_posts_by_author');

Теперь остается только в пост в режиме HTML вставить шорткод:

[latestbyauthor author="username" show="5"]

username — это имя автора, а 5 — количество выводимых постов. А хотите выводить не просто названия постов, а еще и их краткое содержимое? Тогда используйте такой шорткод:

[latestbyauthor author="username" show="5" excerpt="true"]

Шорткоды позволяют выводить список постов только в записях. Чтобы можно было выводить этот список в любом другом месте, можно использовать такую конструкцию:

 

Пользуйтесь!

Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

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