Integration Guide

Add floors.js to WordPress

No plugin needed. Paste one line in your theme's footer and your WordPress site becomes a social space. Works with any theme.

Get lifetime access — $39 See how it works

How it works

WordPress serves full page loads (not a single-page app), so each page load connects to the room matching that URL. A visitor on /about is in the "about" room. A visitor on /shop/blue-widget is in that product's room.

The script loads asynchronously and doesn't block your page render. Three.js only loads when a visitor opens the widget, so your PageSpeed score stays the same.

Installation

Three ways to add floors.js to WordPress. Pick whichever fits your workflow.

1 Theme footer (recommended)

Go to Appearance → Theme Editor → footer.php. Add the script tag right before the closing </body> tag.

footer.php
<!-- floors.js — real-time visitor presence --> <script src="https://floorsjs.com/embed.js" data-key="flr_..."></script> </body> </html>

2 functions.php

If you prefer keeping your theme files clean, add this to your theme's functions.php or a custom plugin. This uses WordPress's wp_footer hook to inject the script on every page.

functions.php
add_action('wp_footer', function() { echo '<script src="https://floorsjs.com/embed.js" data-key="flr_..."></script>'; });

3 Plugin: Insert Headers and Footers

If you don't want to touch theme files at all, use a plugin like WPCode (formerly Insert Headers and Footers) or Header Footer Code Manager.

Footer scripts
<script src="https://floorsjs.com/embed.js" data-key="flr_..."></script>

Works with any theme

floors.js renders as a fixed-position overlay in the bottom-right corner of the viewport. It doesn't inject anything into your page layout, doesn't modify your DOM structure, and doesn't interfere with your CSS.

Tested and compatible with all popular WordPress themes and page builders:

Astra
The most popular WordPress theme. floors.js works perfectly with both the free and Pro versions.
GeneratePress
Lightweight and fast. The async script tag won't affect GeneratePress's performance advantage.
Divi / Elementor
Page builders add their own overlays. floors.js stays out of the way with a high z-index in a fixed container.
Kadence / starter themes
Block themes, starter themes, custom themes — all work. If it outputs HTML, floors.js runs on it.

WooCommerce bonus

On WooCommerce stores, visitors browsing product pages appear in those product rooms. You can see who's looking at your products right now and start a conversation to help them buy.

Frequently asked questions

Do I need a plugin?
No. floors.js is a single script tag. You paste it in your theme's footer, in functions.php, or via a simple header/footer plugin. There is no dedicated WordPress plugin to install.
Will it slow down my site?
No. The script tag loads asynchronously and is tiny. Three.js (the 3D engine) only loads when a visitor actually opens the widget. Your initial page load and Core Web Vitals are unaffected.
Does it work with caching plugins?
Yes. The script tag is static HTML, so it gets cached along with the rest of your page. It works fine with WP Super Cache, W3 Total Cache, LiteSpeed Cache, WP Rocket, and any other caching plugin or server-level cache.
Does it work with WordPress multisite?
Yes. Use a different data-key for each site in the network if you want separate rooms, or use the same key to share a single building across all subsites.
What about child themes?
If you're using a child theme, add the script to your child theme's footer.php or functions.php. This way it persists across parent theme updates.