How to Add a Back-to-Top Button in WordPress Without a Plugin

Hey there! Have you ever been on a long webpage, scrolled all the way down, and then had to scroll back up manually? It’s not a big deal, but sometimes it can get a little annoying, right?

That’s where the magical Back-to-Top button comes in handy!

Today, I’m going to show you how to add a simple and effective back-to-top button to your WordPress site—no plugin needed!

I love little tricks like these because they add functionality to your site without slowing it down with extra plugins. Plus, this one’s pretty easy to implement.

Let’s jump in!

How to Add a Back-to-Top Button in WordPress Without a Plugin

Why Add a Back-to-Top Button?

First off, why even bother with this button? I remember when I first added it to a client’s website. They had a long blog post, and I wanted to make navigation a bit more user-friendly.

Adding a back-to-top button was a game changer. It’s a small touch, but one that enhances the user experience and keeps visitors happy.

It’s especially useful if you have lengthy content like blog posts, articles, or product pages.

Step 1: Add the HTML for the Button

The first step is to add the HTML structure for the button itself. To do this, open your WordPress dashboard, go to Appearance > Theme Editor, and open your theme’s footer.php file. (If you’re cautious about editing theme files, it’s always a good idea to use a child theme or take a quick backup before diving in.)

Add this code near the end of your footer.php file, just before the closing </body> tag:

<a href="#" class="back-to-top" id="back-to-top">↑ Back to Top</a>

This line adds a simple clickable link that we’ll style and make functional. I chose the “↑” arrow symbol to make it clear, but you can swap this with any text or symbol you like.

Step 2: Style the Button with CSS

Now, let’s make the button look nice and place it in a fixed position at the bottom right (or wherever you want it). Go to Appearance > Customize > Additional CSS, and paste in the following CSS:

.back-to-top {
    position: fixed;
    bottom: 20px;
    right: 20px;
    background-color: #333;
    color: #fff;
    padding: 10px 15px;
    border-radius: 5px;
    text-align: center;
    display: none; /* Hidden by default */
    font-size: 14px;
    text-decoration: none;
    transition: opacity 0.3s ease;
    z-index: 1000; /* Make sure it’s above other elements */
}

.back-to-top:hover {
    background-color: #555;
}

Here’s what this CSS does:

  • Position: Fixes the button to the bottom right of the screen, so it stays in place as you scroll.
  • Display: Sets it to none initially (we’ll use JavaScript to make it appear when you scroll).
  • Styling: Adds a background color, padding, and a border-radius to make it look neat.

When I first tried this on my own site, I experimented with colors and placement. You can absolutely tweak these styles to match your site’s design!

Step 3: Add JavaScript to Show/Hide the Button

Now, let’s make the button appear when users scroll down and disappear when they scroll back up to the top. We’ll use a little JavaScript for this part.

Go to Appearance > Theme Editor again, but this time, add the following JavaScript to your theme’s footer.php file, just before the closing </body> tag. Alternatively, if you’d rather keep your JavaScript separate, you can add this code via a Custom HTML block in the WordPress Customizer.

Here’s the code:

<script>
    // Get the button
    const backToTopButton = document.getElementById("back-to-top");

    // When the user scrolls down 300px from the top, show the button
    window.onscroll = function() {
        if (document.body.scrollTop > 300 || document.documentElement.scrollTop > 300) {
            backToTopButton.style.display = "block";
        } else {
            backToTopButton.style.display = "none";
        }
    };

    // When the button is clicked, scroll to the top of the page
    backToTopButton.addEventListener("click", function(e) {
        e.preventDefault(); // Prevent the default anchor click behavior
        window.scrollTo({
            top: 0,
            behavior: "smooth"
        });
    });
</script>

Here’s what each part of this script does:

  1. Detects the Scroll Position: When the user scrolls down 300px from the top of the page, it makes the button visible. If they scroll back up, it hides the button.
  2. Smooth Scrolling: When the button is clicked, it scrolls smoothly back to the top, creating a nice user experience.

I remember testing this on my blog after setting it up, and it worked perfectly! I kept scrolling down and popping back up, honestly just enjoying the smooth scroll. 😆

Step 4: Test the Button

Now, head to your site and give it a whirl. Scroll down, and the back-to-top button should appear as you go. Click it, and you’ll zoom back up to the top with a smooth, stylish scroll.

Why I Love This DIY Approach

The best part about adding a back-to-top button without a plugin? Your site stays fast and lightweight, and you have full control over how the button looks and functions. It’s small touches like these that can make a big difference in your site’s usability. Plus, it’s just fun to build these features yourself!

If you want to make the button more noticeable or change its style, feel free to play around with the CSS. For example, you could add a fade-in effect with opacity or even a bounce animation if you’re feeling fancy.

Final Thoughts

And there you have it—a back-to-top button in WordPress without any plugins! I hope this little tutorial gives your site that extra bit of user-friendliness. Remember, simple touches like these show your users that you’re thinking about their experience, and that’s always a win.

If you run into any issues or want to share how it turned out, just drop a comment below. I’d love to hear from you!

Happy coding! 😊


Discover more from Prime Inspire

Subscribe to get the latest posts sent to your email.

Leave a Reply

Scroll to Top

Discover more from Prime Inspire

Subscribe now to keep reading and get access to the full archive.

Continue reading