Retrieves the Instagram feed for a given user for embedding in a template

Installs: 5 357

Dependents: 1

Suggesters: 0

Security: 0

Stars: 3

Watchers: 1

Forks: 0

Open Issues: 5


v1.0.1 2018-07-03 22:28 UTC

This package is auto-updated.

Last update: 2022-06-06 19:23:07 UTC


Retrieves the Instagram feed for a given user for embedding in a SilverStripe template

Scrutinizer Code Quality Build Status License Version

This module is a simple wrapper for the Instagram user feed PHP library


  • Silverstripe 4.x
  • pgrimaud/instagram-user-feed 5.x


  • Install the code with composer require dorsetdigital/silverstripe-simpleinstagram
  • Run a dev/build?flush to update your project


To use the module, you will need to add a couple of bits of code to your template and its associated model. The Instagram username is passed in as the (required) argument when instantiating the class. For example, if you were adding a feed to your HomePage class for the 'natgeo' Instagram account:


use DorsetDigital\SimpleInstagram\InstagramHelper;

class HomePage extends Page

 public function getInstagramFeed()
  $insta = InstagramHelper::create('natgeo');
  return $insta->getFeed();  

and then in your file you would use the following syntax to display the data:

 <% with $InstagramFeed %>   
 <h2 class="instagram__username">$FullName ($UserName)</h2>
 <a href="$Link">
  <img src="$ProfileImage" alt="Profile Image"/>
 <p class="instagram__biotext">$Bio</p>
 <p class="instagram__stats">Followers: $Followers  /  Following: $Following</p>
 <% loop $Items %>
  <div class="instagram__post-holder">
  <a href="$Link" target="_blank" title="Link to Instagram post">
   <img src="$ThumbURL" alt="$Caption" class="$Type instagram__postimage"/>
   <p class="instagram__caption">$Caption</p>
   <p class="instagram__likes">Liked: $Likes</p>
   <p class="instagram__date">Posted: $Date</p>
 <% end_loop %>
 <% end_with %>

The markup shown above is purely for example purposes. You can format / style it any way you want to suit your project.


In order to help reduce the dependency on the external service and to improve efficiency, the module supports caching via the standard SilverStripe mechanisms. Caching is disabled by default, but it can be enabled by adding a yml configuration to your project, eg:

Name: instagramcache

  enable_cache: true
  cache_time: 900

Enable the cache by setting enable_cache to true. Set the cache time (in seconds) with cache_time