# Ghost Tips & Tricks #5 / Create an Authors List Page

**URL:** <https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437>\
**Category:** Marketplace\
**Created:** [August 12, 2020, 10:11am UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437 "2020-08-12T10:11:51Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![ahmadajmi](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/ahmadajmi/32/23173_2.png) [@ahmadajmi](https://forum.ghost.org/u/ahmadajmi)\
**Post date:** [August 12, 2020, 10:11am UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/1 "2020-08-12T10:11:51Z")

</div>

Hello everyone,

_This is the fifth issue of Ghost Tips & Tricks. I will be happy to share with you some practical Ghost tips that I find useful. Brought to you by [**Aspire Themes**](https://aspirethemes.com/)._

* * *

In this issue, I will share how to add a custom Authors page to show a list of all the blog Authors. I will use the default Casper theme as an example.

### 1. Create the Authors Page Theme File

In your theme directory, create a new file and name it `custom-authors.hbs` and then copy the following code inside it.

```auto
{{!< default}}

<header class="site-header">
  <div class="outer site-nav-main">
    <div class="inner">
      {{> "site-nav"}}
    </div>
  </div>
</header>

{{#post}}

<main id="site-main" class="site-main outer" role="main">
  <div class="inner">
    <header class="post-full-header">
      <h1 class="post-full-title">{{title}}</h1>
    </header>

    {{#get 'authors' limit='all' include='count.posts' order='count.posts desc'}}
      <div class="post-feed">
        {{#foreach authors}}
          <article class="post-card {{#unless profile_image}} no-image{{/unless}}">
            {{#if profile_image}}
              <a class="post-card-image-link" href="{{url}}">
                <div class="post-card-image" style="background-image: url({{profile_image}})"></div>
              </a>
            {{/if}}
            <div class="post-card-content">
              <a class="post-card-content-link" href="{{url}}">
                <header class="post-card-header">
                  <h2 class="post-card-title">{{name}}</h2>
                </header>
                <section class="post-card-excerpt">
                  <p>{{bio}}</p>
                </section>
              </a>
            </div>
          </article>
        {{/foreach}}
      </div>
    {{/get}}
  </div>
</main>

{{/post}}

```

In this code, the [get](https://themes.ghost.org/docs/get) helper used to get the blog users. The `include` attribute used to get the posts count. The `order` attribute used to order the users list based on the posts attached to them.

Next, the [foreach](https://themes.ghost.org/docs/foreach) helper used to loop through each author and render the list with the author profile image, name, URL, and bio.

At this stage, you may need to do a server restart. This will help the `Template` dropdown to show up in the next step.

### 2. Create the Authors Static Page

 ![Authors Static Page](https://us1.discourse-cdn.com/flex015/uploads/ghost2/original/2X/a/a7bf2c78299358d7baf81cd1954dfa361dce1449.png)

- Create a new page and call it **Authors** for example.
- From `Page settings`, select the `Authors` template from the `Template` dropdown.
- Publish the page.

The end result would be like.

 ![Screen Shot 2020-08-12 at 12.03.10 PM](https://us1.discourse-cdn.com/flex015/uploads/ghost2/original/2X/3/3d6e0daf41e09f93bb58dd8964ce76b757b5a4f6.jpeg)

This is an initial example of what you can do to the Authors page. You can take the code further and show the author social media accounts, location, cover image, and posts count.

As an example, you can create something like what I have done with the [**Krabi**](https://aspirethemes.com/themes/krabi/) and [**Penang**](https://aspirethemes.com/themes/penang/) themes.

[![Penang Ghost Theme Authors Page](https://us1.discourse-cdn.com/flex015/uploads/ghost2/original/2X/5/5d9b90d39dad58ab121c70d50940d74c32ea3272.jpeg)](http://krabi.aspirethemes.com/authors/)

[![Penang Ghost Theme Authors Page](https://us1.discourse-cdn.com/flex015/uploads/ghost2/original/2X/d/dfd262c8352b73b5611290479b028c27897f8112.jpeg)](http://penang.aspirethemes.com/authors/)

* * *

That’s it for today and I hope you find this useful…

Checkout previous parts of the Ghost Tips & Tricks series:

- [Ghost Tips & Tricks #1 / Show Publish Date in the day time with AM and PM format.](https://forum.ghost.org/t/ghost-tips-tricks-1-show-publish-date-in-the-day-time-with-am-and-pm-format/14289)
- [Ghost Tips & Tricks #2 / Ghost Admin Right to Left (RTL) Support.](https://forum.ghost.org/t/ghost-tips-tricks-2-ghost-admin-right-to-left-rtl-support/14357)
- [Ghost Tips & Tricks #3 / Deploy Your Ghost Theme Using Github Actions.](https://forum.ghost.org/t/ghost-tips-tricks-3-deploy-your-ghost-theme-using-github-actions/14966)
- [Ghost Tips & Tricks #4 / Create a Tags List Page.](https://forum.ghost.org/t/ghost-tips-tricks-4-create-a-tags-list-page/15653)

* * *

Also, I started a [Ghost Websites Inspiration](https://forum.ghost.org/t/ghost-websites-inspiration-1/14185) series share inspiring websites created with Ghost. I hope you can find it inspiring and useful too.

Stay safe!

_Ahmad_

---

<div class="post-metadata">

**Author:** ![Wuruwhi](https://avatars.discourse-cdn.com/v4/letter/w/d26b3c/32.png) [@Wuruwhi](https://forum.ghost.org/u/Wuruwhi)\
**Post date:** [August 15, 2020, 2:05pm UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/2 "2020-08-15T14:05:53Z")

</div>

Awesome tip 🙂

If I want to exclude a specific account/author from showing on the page, how would I do that? Can you do limit=all but xyz?

---

<div class="post-metadata">

**Author:** ![GBJsolution](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/gbjsolution/32/4738_2.png) [@GBJsolution](https://forum.ghost.org/u/GBJsolution)\
**Post date:** [August 15, 2020, 10:02pm UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/3 "2020-08-15T22:02:16Z")

</div>

You can try filter property like this

```auto
filter="slug:-author-slug"

```

Replace the `author-slug` with actual slug.

P.S. - It’s from my head, I have not testes it.

---

<div class="post-metadata">

**Author:** ![ahmadajmi](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/ahmadajmi/32/23173_2.png) [@ahmadajmi](https://forum.ghost.org/u/ahmadajmi)\
**Post date:** [August 16, 2020, 8:41am UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/4 "2020-08-16T08:41:08Z")

</div>

@GBJsolution solution should work fine. So, if you have an author with `ahmad` slug, the code should be something like:

```
{{#get 'authors' limit='all' filter='slug:-ahmad' include='count.posts' order='count.posts desc'}}

{{/get}}
```

---

<div class="post-metadata">

**Author:** ![Wuruwhi](https://avatars.discourse-cdn.com/v4/letter/w/d26b3c/32.png) [@Wuruwhi](https://forum.ghost.org/u/Wuruwhi)\
**Post date:** [August 16, 2020, 4:36pm UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/5 "2020-08-16T16:36:07Z")

</div>

Worked like a charm 🙂  
Thank you both!

---

<div class="post-metadata">

**Author:** ![fakruzaruret](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/fakruzaruret/32/10946_2.png) [@fakruzaruret](https://forum.ghost.org/u/fakruzaruret)\
**Post date:** [December 10, 2020, 7:41pm UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/6 "2020-12-10T19:41:28Z")

</div>

How can I list authors (las posted 5 authors) with their last posts?

How can I convert this?

{{#get ‘authors’ limit=‘5’ include=‘last.post’ order=‘last.posts desc’}}  
{{/get}}

It should be shown like this

[![](https://us1.discourse-cdn.com/flex015/uploads/ghost2/original/2X/2/277772efb0c7927c41d0c384b762c171e8628f33.jpeg)](https://ibb.co/gwWkTZB)

---

<div class="post-metadata">

**Author:** ![ahmadajmi](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/ahmadajmi/32/23173_2.png) [@ahmadajmi](https://forum.ghost.org/u/ahmadajmi)\
**Post date:** [December 11, 2020, 8:38am UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/8 "2020-12-11T08:38:55Z")

</div>

I think this is what you look for.

```auto
{{#get 'authors' limit='5' include='count.posts' order='count.posts desc'}}
  {{#foreach authors}}
    <a href='{{ url }}'>{{ name }}</a>
    {{#get 'posts' filter='primary_author:{{slug}}'}}
      {{#foreach posts}}
        <li><a href='{{url}}'>{{title}}</a></li>
      {{/foreach}}
    {{/get}}
  {{/foreach}}
{{/get}}

```

---

<div class="post-metadata">

**Author:** ![fakruzaruret](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/fakruzaruret/32/10946_2.png) [@fakruzaruret](https://forum.ghost.org/u/fakruzaruret)\
**Post date:** [December 11, 2020, 5:38pm UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/9 "2020-12-11T17:38:51Z")

</div>

This shows many posts. I want to show authors’ last posts. How can I show the last post of author by changing this part of code.

```
{{#get 'posts' filter='primary_author:{{slug}}'}}
  {{#foreach posts}}
    <li><a href='{{url}}'>{{title}}</a></li>
  {{/foreach}}
{{/get}}
```

---

<div class="post-metadata">

**Author:** ![ahmadajmi](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/ahmadajmi/32/23173_2.png) [@ahmadajmi](https://forum.ghost.org/u/ahmadajmi)\
**Post date:** [December 11, 2020, 5:44pm UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/10 "2020-12-11T17:44:51Z")

</div>

You can add a limit to the `get` helper as well.

> [@ahmadajmi](#):
>
> `limit='5'`

---

<div class="post-metadata">

**Author:** ![fakruzaruret](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/fakruzaruret/32/10946_2.png) [@fakruzaruret](https://forum.ghost.org/u/fakruzaruret)\
**Post date:** [December 11, 2020, 5:49pm UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/11 "2020-12-11T17:49:04Z")

</div>

You are a great guide and tutor. Thank you very much ❤  
Also I want to ask one more thing. Can we use @first and @last booleans for this?

---

<div class="post-metadata">

**Author:** ![ahmadajmi](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/ahmadajmi/32/23173_2.png) [@ahmadajmi](https://forum.ghost.org/u/ahmadajmi)\
**Post date:** [December 11, 2020, 5:55pm UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/12 "2020-12-11T17:55:50Z")

</div>

Pleasure!

Of course, you can do that inside the `#foreach` block helper. More details about that at [Ghost Handlebars Theme Helpers: foreach](https://ghost.org/docs/api/v3/handlebars-themes/helpers/foreach/#data-variables)

---

<div class="post-metadata">

**Author:** ![yyppsk](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/yyppsk/32/14666_2.png) [@yyppsk](https://forum.ghost.org/u/yyppsk)\
**Post date:** [August 18, 2021, 10:59am UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/13 "2021-08-18T10:59:33Z")

</div>

Can someone tell me if this works in 2021? I don’t find any template option.

---

<div class="post-metadata">

**Author:** ![ahmadajmi](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/ahmadajmi/32/23173_2.png) [@ahmadajmi](https://forum.ghost.org/u/ahmadajmi)\
**Post date:** [August 19, 2021, 8:35am UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/14 "2021-08-19T08:35:20Z")

</div>

> [@ahmadajmi](#):
>
> At this stage, you may need to do a server restart. This will help the `Template` dropdown to show up in the next step.

@yyppsk

---

<div class="post-metadata">

**Author:** ![yyppsk](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/yyppsk/32/14666_2.png) [@yyppsk](https://forum.ghost.org/u/yyppsk)\
**Post date:** [August 19, 2021, 6:15pm UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/15 "2021-08-19T18:15:04Z")

</div>

I don’t have a template option in my Theme. :((

---

<div class="post-metadata">

**Author:** ![ahmadajmi](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/ahmadajmi/32/23173_2.png) [@ahmadajmi](https://forum.ghost.org/u/ahmadajmi)\
**Post date:** [August 19, 2021, 6:42pm UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/16 "2021-08-19T18:42:30Z")

</div>

The Template option/dropdown is an admin option, not a theme option.

 ![a7bf2c78299358d7baf81cd1954dfa361dce1449_2_1380x940](https://us1.discourse-cdn.com/flex015/uploads/ghost2/original/2X/c/c1126fb10de461875c993ce08bb8a37222de0907.png)

---

<div class="post-metadata">

**Author:** ![yyppsk](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/yyppsk/32/14666_2.png) [@yyppsk](https://forum.ghost.org/u/yyppsk)\
**Post date:** [August 21, 2021, 3:44pm UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/17 "2021-08-21T15:44:44Z")

</div>

![image](https://us1.discourse-cdn.com/flex015/uploads/ghost2/original/2X/e/e2b55d0c0ace66120a1d78be23018bb2ff838186.png)  
This is what my ghost admin shows! No Option for template ☹

---

<div class="post-metadata">

**Author:** ![Daniel\_Mastrorillo](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/daniel_mastrorillo/32/15119_2.png) [@Daniel\_Mastrorillo](https://forum.ghost.org/u/Daniel_Mastrorillo)\
**Post date:** [September 19, 2021, 5:55am UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/18 "2021-09-19T05:55:05Z")

</div>

Just chiming in here because I just went through the same issue. You need to make sure that the new custom-authors.hbs belongs to the ‘ghost’ user.

```auto
sudo chown ghost:ghost custom-authors.hbs

```

Then do a server restart

```auto
ghost restart

```

And then refresh the page and the template will appear 🙂

---

<div class="post-metadata">

**Author:** ![umut\_yasar](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/umut_yasar/32/32170_2.png) [@umut\_yasar](https://forum.ghost.org/u/umut_yasar)\
**Post date:** [September 30, 2024, 3:13pm UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/19 "2024-09-30T15:13:22Z")

</div>

Hello, thank you for the tip. How can I list the latest post of the author instead of author bio?

---

<div class="post-metadata">

**Author:** ![ahmadajmi](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/ahmadajmi/32/23173_2.png) [@ahmadajmi](https://forum.ghost.org/u/ahmadajmi)\
**Post date:** [October 1, 2024, 8:04pm UTC](https://forum.ghost.org/t/ghost-tips-tricks-5-create-an-authors-list-page/16437/20 "2024-10-01T20:04:07Z")

</div>

This should work as a starting point.

```auto
{{#get 'authors' limit='all'}}
  {{#foreach authors}}
    <h2>{{ name }}</h2>

    {{#get 'posts' filter='authors:{{slug}}'}}
      {{#foreach posts}}
        <a href='{{ url }}'>{{ title }}</a>
      {{/foreach}}
    {{/get}}

  {{/foreach}}
{{/get}}

```
