quqii – Social Media Feed Grid

Descrição

quqii Social Media Feed Grid displays Instagram profile feeds on your WordPress website. It connects to the feed.quqii.net API which retrieves, caches and serves publicly available Instagram data at lightning speed. No direct Instagram API access required. Public accounts can be shown; a private or personal account first has to be switched to a free Creator or Business account (the plugin tells you how).

See it in action: live examples with copy-and-paste shortcodes for different layouts and setups are at quqii.com/quqii-feed.

Features

  • Gutenberg block with inspector controls
  • Shortcode for classic editor and page builders
  • Automatic caching on the quqii server, based on posting frequency — nothing is stored on your website
  • Images, carousels and videos in 4:5 format — a video that only comes with a preview image shows a play badge that opens the post on Instagram
  • Nothing from Instagram is stored on your website: no images, no cached data
  • Follower count and likes display
  • Optional post captions — shown below the image or as a full-image overlay with a customisable color and opacity, revealed by tapping an info icon
  • Per-shortcode overrides for the global display settings (e.g. hide the Instagram link or like count for a single feed)
  • Responsive grid spacing that respects visitors’ text-size preferences and automatically tightens up on mobile
  • Fully customisable via CSS classes

Shortcode Reference

Full feed:
[quqii-feed instagram=”quqii.official”]

Profile header only:
[quqii-feed instagram=”quqii.official” display=”profile”]

Image/video grid only:
[quqii-feed instagram=”quqii.official” display=”grid”]

Follower count inline:
[quqii-feed instagram=”quqii.official” display=”followers”]

With custom column count and CSS class:
[quqii-feed instagram=”quqii.official” columns=”4″ class=”my-style”]

Override a display setting for one feed only:
[quqii-feed instagram=”quqii.official” linktoinstagram=”0″ showlikes=”0″ followercount=”0″]

Swipeable slider instead of a grid (3 slides visible, 1.3 on mobile so the next one peeks in):
[quqii-feed instagram=”quqii.official” layout=”slider” columns=”3″ columns-mobile=”1.3″]

Slider that advances by itself:
[quqii-feed instagram=”quqii.official” layout=”slider” autoplay=”1″]

Slider with a custom pace, without arrows and dots:
[quqii-feed instagram=”quqii.official” layout=”slider” autoplay=”1″ autoplay-interval=”6″ arrows=”0″ dots=”0″]

Different number of grid columns on mobile:
[quqii-feed instagram=”quqii.official” columns=”4″ columns-mobile=”2″]

Only the images, without the profile area:
[quqii-feed instagram=”quqii.official” profile=”0″]

Seamless grid — no gaps, square corners:
[quqii-feed instagram=”quqii.official” no-gap=”1″ no-radius=”1″]

Show post captions as a tap-to-reveal overlay:
[quqii-feed instagram=”quqii.official” caption=”1″ captionpos=”overlay”]

Requirements

An API token is required. Free account at feed.quqii.net.

External Services

This plugin connects to the feed.quqii.net API to retrieve Instagram profile data.

  • Service: feed.quqii.net
  • Purpose: Fetching, caching (on the quqii server) and serving publicly available Instagram profile data (profile info and links to post images and videos).
  • Data sent: Your API token, the Instagram username(s) you configure, the number of posts you want to show (the limit setting, capped at your plan), and the URL of the page the feed is displayed on (shown back to you in your own quqii dashboard, so you can check a feed is live where you expect it — not shared with anyone else).
  • When: On every page load that uses the [quqii-feed] shortcode or block (nothing is cached on your website; the quqii API answers from its own cache).
  • Privacy Policy: https://feed.quqii.net/privacy.php
  • Terms of Service: https://feed.quqii.net/terms.php

This plugin also connects to Instagram (Meta Platforms) when a visitor chooses to play a video:

  • Service: instagram.com (Instagram’s own embedded player)
  • Purpose: Playing a video of a displayed post in an overlay on your page, instead of sending the visitor away to Instagram.
  • Data sent: Only after the visitor clicks “Play video” in the overlay, their browser loads the player from Instagram, which receives the visitor’s IP address and may set cookies. Nothing is loaded from Instagram before that click. You can switch this off under Settings Display “Play videos on the page”; videos then link to Instagram as before.
  • Privacy Policy: https://privacycenter.instagram.com/policy
  • Terms of Use: https://help.instagram.com/581066165581870

By using this plugin, you agree to the Terms of Service. An account and API token at feed.quqii.net is required.

Blocos

Este plugin disponibiliza 1 bloco.

  • quqii Feed

Instalação

  1. Install the plugin ZIP in the WordPress admin under Plugins Add New Upload Plugin.
  2. Activate the plugin.
  3. Go to quqii Feed in the WordPress admin menu, enter your API token and verify it.
  4. Add the shortcode or block to any page.

Perguntas frequentes

Where do I find my API token?

In the dashboard at feed.quqii.net/dashboard.php.

How often is the data updated?

The interval is based on the posting frequency of the account (automatic mode) or can be set manually in the quqii Feed dashboard.

Does the plugin work with page builders?

Yes. The shortcode [quqii-feed instagram="quqii.official"] works in Elementor, Divi, WPBakery and all other page builders that support shortcodes.

Can I customise the styling?

Yes. All CSS classes start with quqii-feed- and can be overridden in your theme stylesheet. Use the class attribute in the shortcode to add additional classes.

Does the plugin store Instagram images or data on my website?

No. The plugin keeps nothing from Instagram on your site — no images, no cached copy of the feed. Every feed on a page asks the quqii service when the page is rendered, and the images are loaded by your visitors’ browsers directly from where they are hosted. Each feed on a page counts as one API call.

The feed says an account can’t be shown yet. What can I do?

Only public accounts can be shown. If the account is private or a personal account, the message explains that its owner has to switch it to a free Creator or Business account in the Instagram app (Settings Account type and tools Switch to professional account). The feed then appears automatically, usually within a day.

Images are missing from a page that worked before.

Instagram’s image links are only valid for a limited time. If a caching plugin keeps whole pages for days, the images on an old cached page can disappear. Set the page cache lifetime to 24 hours or less, or use the “Keep feed pages out of full-page caching” setting described below.

My feed isn’t showing new posts — is a caching plugin to blame?

It can be. If a caching plugin (WP Rocket, WP Super Cache, W3 Total Cache, and similar) serves a page from its cache, the feed on it won’t check for new posts until that cache expires or is cleared. Under Settings on the quqii Feed page, turn on “Keep feed pages out of full-page caching” and those pages will always be rendered fresh — this is off by default, since it also means the rest of that page (not just the feed) skips full-page caching, which can matter for a busy page like a homepage. This doesn’t help with caching that happens before WordPress even runs — a reverse proxy like Varnish, a Cloudflare page rule, or a full-page cache configured at the hosting/server level. If your host uses one of those, ask them to exclude the pages that show your feed.

Avaliações

14 outubro, 2026
This plugin does not need to connect directly with Instagram, so I didn't need to change the 'Connect future activity' setting of Meta (allowing tracking, sharing etc.). I don't know if this plugin does any of that, but it looks good and is easy to use. Refreshing seems to take a while, but I don't mind that.
Leia a 1 avaliação

Colaboradores e desenvolvedores

“quqii – Social Media Feed Grid” é um programa de código aberto. As seguintes pessoas contribuíram para este plugin.

Colaboradores

Registro de alterações

1.6.0

  • New: videos of other Instagram accounts (which come as a preview image only) now play on your page. A click on the play button opens Instagram’s player in an overlay; the grid itself is not touched. The connection to Instagram is only made after the visitor clicks “Play video”. Turn it off under Settings Display “Play videos on the page” to link to Instagram instead, as before. A single feed can override the setting with the shortcode parameter inlinevideo="1" or inlinevideo="0", or in the block’s sidebar.

1.5.1

  • Fixed: a page that only shows “your feed is being prepared” or an error message is no longer stored by page caching plugins (WP Rocket, W3 Total Cache, WP Super Cache, LiteSpeed Cache and others). Before, the first visit to a feed that wasn’t ready yet could leave that placeholder in the cache for hours.

1.5.0

  • Changed: the plugin no longer stores any Instagram data on your website. The 5-minute local cache is gone — every feed on a page asks the quqii service itself, and the service answers from its own cache. Each feed therefore counts as one API call (a page with five feeds is five calls). If you use a caching plugin for whole pages, the feeds on a cached page are only refreshed when that page is.
  • New: the limit of a shortcode or block is passed on to the quqii service, so only as many posts as you actually show are requested (never more than 36).
  • Changed: a feed that shows no posts (follower count, Instagram link or profile area only) asks the service for the profile data alone, which is the smallest and cheapest request.
  • New: the settings page and the block’s username field now say upfront that a private or personal Instagram account has to be switched to a free Creator or Business account before its feed can be shown.
  • New: a private or personal Instagram account now gets a clear message — it has to be switched to a Creator or Business account in the Instagram app before its feed can be shown.
  • Changed: the settings page no longer shows a separate refresh counter — the usage card shows your API calls, and the upgrade banner follows them.
  • New: accounts without a plan limit (set by us for special cases) show “Unlimited” instead of a limit on the settings page.
  • New: videos that come with a preview image only (their video file isn’t part of the official Instagram data) show a play badge that opens the post on Instagram.

1.4.0

  • New: slider layout — layout="slider" (or “Darstellung: Slider” in the block) shows the feed as a swipeable slider with previous/next arrows, dot navigation and an ease-in-out glide. “Columns” is the number of slides visible at once and may be fractional (e.g. 2.5) so the next slide peeks in.
  • New: optional autoplay for the slider — autoplay="1", with autoplay-interval="6" for the seconds per slide. It pauses on hover, focus and touch, has its own pause button, and never starts for visitors who have asked their system to reduce motion.
  • New: arrows="0" and dots="0" hide the slider’s arrows and dot navigation; the block has matching switches.
  • New: columns-mobile="2" (and a matching block setting) sets the number of columns — or visible slides — on small screens, independently of the desktop setting.
  • New: profile="0" shortcode attribute hides the profile area (picture, name, followers), matching the block’s “Show profile area” switch.
  • New: on the settings page, the API Token and Integration Examples cards now sit side by side, the current-plan card is highlighted in orange, and a dismissible banner shows your real usage percentage once you reach 90% of a monthly limit.
  • Changed: the info, like and Instagram-link icons at the bottom of each image now have the same inset from the bottom as they do from the sides.

1.3.0

  • New: an “Integration Examples” card under Settings, linking to live examples with copy-and-paste shortcodes at quqii.com/quqii-feed — also linked from this page.
  • New: the block has a “Show profile area” switch in its sidebar, to display just the image grid without the profile picture, name and follower count.
  • New: no-gap="1" and no-radius="1" shortcode attributes, for a seamless grid with no spacing between images and/or square corners.
  • Fixed: with display="followers", the follower count now takes on the size, colour and weight of the text around it — for example inside a heading — instead of always rendering in its own small grey style.
  • Changed: the editor/builder preview notice now says the feed loads on the “live/preview page”.

1.2.9

  • New: a “Show follower count” setting — global default under quqii Feed Settings, with per-shortcode (followercount="0") and per-block (in the block’s sidebar) overrides, same pattern as “Show likes”. On by default, matching the previous always-on behaviour.
  • Changed: the follower count next to the profile name is now abbreviated the way Instagram’s own UI does it (“27.9K”, “1.2M”) instead of the full number with thousands separators. The full number is unchanged for the dedicated display="followers" mode.

1.2.8

  • Fixed: the WordPress Customizer’s own live preview reloads the previewed page as a real front-end request while you’re editing anything in Appearance > Customize — a different mechanism from the page-builder previews 1.2.4 already handled, so it slipped through that guard and could burn quota on keystrokes typed elsewhere in the Customizer. Now excluded the same way.

1.2.7

  • New: each API request now includes the page it was made from. No new data is collected from your visitors — it’s the same page URL WordPress already knows it’s rendering — but it lets us show you, in your quqii dashboard, exactly which of your pages a feed is actually live on.

1.2.6

  • Changed: the ready-to-copy shortcode examples (here and on the settings page) now use “quqii.official” — a real account we control — instead of the non-existent “your_instagram_username” placeholder from 1.2.5, so pasting one as-is shows our own demo feed instead of an error. The Instagram-username field in the block editor still shows “your_instagram_username” as its hint text, since that field describes what to type rather than being something you’d copy-paste whole.

1.2.5

  • Fixed: the example handle in our documentation was changed to “natgeo” (a real, working account) in 1.2.3 to replace the old “username” placeholder — but that meant a shortcode left unedited would silently display National Geographic’s own feed instead of erroring, which was arguably more confusing than the problem it replaced. Examples now use “your_instagram_username”, which isn’t a real account, so an unedited copy fails with a clear message again instead of silently showing the wrong feed.

1.2.4

  • Fixed: some page builders (Elementor’s Shortcode widget among them) re-render a feed’s shortcode live, through their own preview mechanism, on every edit — including while you’re still mid-keystroke typing the Instagram username. Each half-typed value was being sent to the API as if it were a real request, which could use up part of your monthly quota on something that was never meant to be fetched. Editor and builder previews no longer contact the API at all.

1.2.3

  • Fixed: our own documentation used to show “username” as the example handle in every shortcode — copying an example without editing it meant literally requesting that. It’s now detected immediately, with a message telling you to enter your real Instagram username, instead of quietly failing. Example shortcodes now use a real handle so this shouldn’t come up for new copy-paste in the first place.

1.2.2.1

  • Fixed: a username or Instagram link could quietly fail to load if it carried a zero-width or otherwise invisible character (some page builders, including Elementor, can introduce these), or if it arrived with HTML entities still in it. Sanitisation is now considerably more thorough, with a final check against the same rules the API itself uses.

1.2.2

  • New: a “Keep feed pages out of full-page caching” setting, for sites where a caching plugin (WP Rocket, WP Super Cache, W3 Total Cache, and others) was holding onto an old, stale copy of the page instead of checking for new posts. Off by default, since it also takes the rest of that page out of caching — turn it on only where a live feed matters more than that page’s load time.

1.2.1

  • New: sites that connected before 1.2.0 — or that still have a token pasted in by hand — now show up as a proper connected website in your dashboard too, with their own name and their own Disconnect button. This happens quietly in the background after updating; there’s nothing to click.

1.2.0

  • New: connecting your site is now as easy as entering your email address — no more hunting down an API token to copy and paste. Don’t have a quqii account yet? It’s created for you the moment you click the link in your inbox.
  • New: every website you connect gets its own token, so your dashboard shows exactly what’s connected, and you can disconnect one site without touching the others.
  • Improved: before anything connects, you’re shown which website is asking and get to confirm it yourself.
  • Improved: when a feed can’t load, it now tells you why — account not connected, Instagram account unavailable, monthly limit reached — instead of one generic error for every cause.
  • Fixed: pasting a full Instagram link instead of just the username could quietly fail to load if the link was capitalized or picked up an invisible space during copy-paste.
  • Fixed: the feed’s styling could be missing entirely when used inside a page builder like Elementor, or in content that loads in after the page, such as a popup.
  • Fixed: regenerating your API token no longer disconnects the websites you’ve already connected.

1.1.0

  • New: post captions can now be shown as a full-image overlay, with a customisable color and opacity, revealed by tapping an info icon (works on mobile — no hover required)
  • New: the global display settings (Link to Instagram, Show likes) now apply to every shortcode and block by default, and can be overridden per shortcode with the new linktoinstagram and showlikes parameters
  • New: the “Show likes” heart icon and the video play button have been redesigned for better visibility
  • Improved: grid spacing now scales with the visitor’s text-size setting and automatically tightens up on mobile screens
  • Improved: the bottom icon row (info, likes, Instagram link) is now consistently aligned and inset from the edge
  • Fixed: the Gutenberg block now shows a “feed is being prepared” message the first time a profile is loaded, matching the shortcode’s existing behaviour
  • Fixed: icon sizing and color could be affected by some themes’ global SVG styles

1.0.0

  • Initial release