How to Create a Secure Multi-Author Blog on Blogger (BlogSpot)

On
Hands in a group

A blogging CMS is incomplete without the support of multiple authors. Most popular blogging solutions have this feature baked right into their core. And, Blogger is no different. But, there's a problem! It's not as secure as the other solutions. What's the problem with the default multi-author system? That's what we're going to address in this tutorial with an alternate solution until things are fixed by the Blogger team. You must have a working knowledge of HTML and CSS to implement a custom multi-author solution on Blogger. Let's get started and create a secure multi-author blog on the Blogger platform.

Hands in a group

Remember, the multi-author solution presented here can be used as a base or an idea to create your very own implementation. It can be entirely different from the one described below. So, here we go!

Read Also:
A Step-by-Step Guide to Designing a Custom Blogger (BlogSpot) Template

In the first section, we'll compare Blogger's multi-author system with the self-hosted WordPress multi-author system. It'll help us highlight the key issue with the former's multi-author system.

Blogger's Default Multi-Author System Shortcoming

Before we talk about the solution, let's first understand the issues and shortcomings of the default multi-author system of the Blogger platform.

To do that, we have to compare it with the multi-author system of a self-hosted WordPress blog. It'll help us understand the difference between the two and the problem associated with the Blogger's version.

Note: When I say—a secure system—it has nothing to do with CMS security from a hacking perspective. It's all about permissions related to content management.

Let's take a quick look at two important user roles available in self-hosted WordPress websites. I've marked those two roles below.

User roles in self-hosted WordPress blog

When you're adding an author to WordPress, you can assign one of the two roles to his account viz., Author, or Contributor. What's the difference between the two?

An author has complete control over the content he creates. He can create his posts, write and edit them, and also has the power to publish them without seeking approval from admins and editors.

On the other hand, a contributor can only create, write, and edit his posts. He does not have the power to publish them. In other words, an editor or administrator needs to press the publish button for the posts written by a contributor.

Author roles in Bloggger blog

Now, let's a close look at Blogger's multi-author system. Here, we have just two user roles viz., an Admin, and an Author. There's no other user role available on Blogger blogs.

The admin role is self-explanatory. The author role of Blogger is similar to the author role available in self-hosted WordPress blogs. It means an author has complete control over his content. He can create, write, edit, and publish his content—without any restrictions or checks.

And, that's the problem I was talking about.

There's no user role similar to a contributor role on the Blogger platform. Unless you have complete trust in your authors, it's like a gamble to give full publishing rights to any author on a Blogger blog.

Fixing Blogger's Multi-Author System

Now that we're familiar with the shortcoming of the Blogger multi-author system, let's try to find a solution to this problem. For this, I've devised my method.

To get it working, you need the following things.

Some code changes in your blog's template code. And, two more blogs.

What? Two more blogs! Why?

Let me explain. The goal is to make sure the author doesn't get the privilege of publishing their posts without your approval. Unfortunately, that's not possible with the default system.

To get the new system working, first of all, create two copies of your existing Blogger blog. Both of them should be private.

One of the copies should have no content. Just the design of your main blog. In simple words, it's kind of a staging blog or the blog where authors will write and edit their posts.

This is the blog, where you'll add authors. So, even if they publish the posts, it's just a private blog that no one can access except the authors themselves.

And, because it has the same design template as your main blog, everyone (admins and authors) can see how the post will look on the real blog when it is transferred to the latter.

The second blog should be the whole copy (design + content) of your main blog. And, you need to import content from the main blog, at least every week. This will keep its content synced with the main blog.

But, what's the need for this blog? Well, authors can use this blog to search for older posts they may want to link to from within the posts they're writing on the staging blog. Makes sense?

Remember, authors should be part of both of these blogs. In other words, you need to add them as authors on both these blogs. One is the staging blog for writing and the other one is just for searching for old content to link to. And, make sure both these blogs are private.

Now the problem is that none of the authors are part of the main blog. They just can't access it. It means, if you copy-paste the content written on the staging blog and publish it on the main blog, the author will still be the blog owner. The name of the author in the post byline would be that of the blog owner.

Post title and the post byline

What we want is the name should be of the author whose post we're transferring from the staging blog. And, if someone clicks the name in the post byline, the visitor should be redirected to the author details on the page where all the authors are listed.

To do all this, first of all, we have to assign a code to each of the authors. This code can be alphanumeric. For example, A001, A002, and so on. You can use your coding scheme. I just gave an example.

Create a static page on your main Blogger blog and create a list of all the authors with their photos, short bio, and their social media links. Enclose each of the author sections in a <div> element and make sure the id value assigned to each section is the author code. For example.

<div class="author-box" id="A001">
<!-- Add author details here in the form of HTML markup -->
</div>

<div class="author-box" id="A002">
<!-- Add author details here in the form of HTML markup -->
</div>

Feel free to use your custom CSS to stylize these author boxes. Pay attention to the id attribute's value of each of the <div> elements. For each section, the value is the author code.

Once, your author page is ready with these author sections, open your blog's template code and modify the post byline as follows.

 <div class='post-header-line-1'/>

Find the code shown above, and right below it, find the author displaying code. Replace it with the one shown below.

<span class='post-author vcard' itemscope='itemscope' itemtype='http://schema.org/Person'>
        <b:if cond='data:top.showAuthor'>
          <b:if cond='data:post.labels any (label => label.name == "A001")'>
            By <a href='https://yourblog.com/p/author-page.html#A001' rel='author' title='Posts by Johnny Depp'><span class='fn author' itemprop='name'>Johnny Depp</span></a>
            <b:elseif cond='data:post.labels any (label => label.name == "A002")'/>
            By <a href='https://yourblog.com/p/author-page.html#A002' rel='author' title='Posts by Bruce Willis'><span class='fn author' itemprop='name'>Bruce Willis</span></a>
            <b:else/>
          By <a href='https://yourblog.com/p/author-page.html#A000' rel='author' title='Posts by Rajeev Edmonds'><span class='fn author' itemprop='name'>Rajeev Edmonds</span></a>
          </b:if>
        </b:if>
      </span> <!--</span>-->

If you carefully look at this code, you can find the author page URL, author codes, and author names. All you have to do is replace these with your information. If there are more authors, keep adding the <b:elseif ....> sections.

Note, the blog's owner entry is the last one. Keep it that way.

Note: This code applies to 2nd generation of Blogger templates. If you're using 3rd generation dynamic Blogger templates, you have to find some other solution.

At this point, all of the necessary steps are done. Now whenever you transfer an author's post to the main blog, simply add the author's code as one of the labels for that post. See the example below.

Labels of a Blogger post

When this post will get published, its respective author name will appear in the post byline, and on clicking the name, the visitor will be redirected to the relevant author's section on the author page.

This setup ensures that none of the authors get direct access to the main blog, and yet, each one of them gets his credit in the post byline along with their author section on the author page.