Library Bookshelves


The Library Bookshelves plugin allows you to curate virtual bookshelves just like you would a shelf around a theme in your library. Bookshelves are displayed as customizable Slick carousels, using cover art from, and links to, your library catalog. The plugin creates a Bookshelves post type, shortcode, widget, and custom taxonomy.

Many of you have asked for a way to have Bookshelves which link directly to Hoopla or Overdrive, and also have Bookshelves which link to your main catalog. Well, here it is! Look for the ebook catalog options in the Bookshelves post editor.

This plugin currently supports these catalog systems:
— BiblioCommons
— Calibre and COPS
— Civica Spydus
— EBSCOHost Discovery Service
— Evergreen
— Ex Libris Primo
— Hoopla
— Innovative Encore, WebPAC PRO, and Polaris
— Koha
— Marmot Pika
— Overdrive
— SirsiDynix Enterprise and Horizon
— WorldCat

It supports retrieval of images from these third-party CDNs:
Baker & Taylor

Bookshelves can be populated using:
— Calibre OPDS (and HTML) PHP Server API
— Evergreen SuperCat feeds
— Koha Reports Web Service
— Koha RSS feeds
— New York Times Books API
— Pika API
— Sierra API
— SirsiDynix Symphony Web Service

When using an API you can set a Bookshelf to update items on a regular schedule using the WordPress cron system. Items returned from an API query which have no associated cover art in your selected image CDN are automatically removed from the Bookshelf.

If you would like this plugin to support another catalog system, CDN, or web service email me.

Originally developed by and for staff at the Guilderland Public Library.

Thanks to Gregory Testa of Chesapeake Public Library and Josh Stompro of Lake Agassiz Regional Library for feature suggestions and code contributions.

We want to know where our plugin is being used and how you’re using it! Don’t worry, we’re not going to use any tracking code to find out. If you are one of the many libraries using this plugin drop us a line and say «Hi!»


  1. Go to Bookshelves>Settings to configure the plugin.
  2. On the Catalog tab enter the domain name of your catalog (default is
  3. Select your catalog system and image CDN.
    • If you have Polaris 6.3 or higher you may need to choose the Polaris 6.3+ catalog option if your item links fail.
    • ChiliFresh users will need to add their website domain to «Covered hosts» in the ChiliFresh Admin Panel for images to display.
    • TLC users will need to enter a Customer ID which can be found in your catalog’s item cover art URLs.
  4. Enter your Overdrive catalog URL if you wish to have some bookshelves link directly to Overdrive.
  5. On the Slider Settings tab you can customize bookshelf behavior. Defaults have been set to get you started.
  6. On the CSS Settings tab you can customize some Bookshelf element styles.

Getting Started

Create a new Bookshelf using ISBNs or UPCs from items in your catalog. You can input items manually, from an exported list, or from a web service API. Paste the Bookshelf shortcode into a post or page, or use the Bookshelf widget. Add location tags to your Bookshelves to display them in the widget or just to keep them organized. The widget can organize Bookshelves in tabs, and will sort Bookshelves by the Order attribute.

You can make a Bookshelf that links to Overdrive or Hoopla while having other Bookshelves link to your main catalog. To do this, make sure you’ve entered your Overdrive catalog URL (if you want to use Overdrive) in addition to your main catalog settings. Create a new Bookshelf and choose an option in the eBook Catalog box.

EBSCOHost users must enter Accession Numbers, and Calibre/COPS users must enter book ID numbers instead of ISBNs or UPCs.


You can modify Bookshelf items and alt text using the WP REST API. The API endpoint for Bookshelf posts is https://{your.library.url}/wp-json/wp/v2/bookshelves/. This plugin only supports the REST API in WordPress 5.3 and higher.

Known Issues

There is a known issue using the Bookshelves widget in tabbed mode and the Ultimate Addons for Visual Composer plugin.

Часто задаваемые вопросы

Q: This plugin doesn’t support my library’s catalog system. Will future versions support it?

A: Yes! But only if you contact me with a link to your catalog! As soon as you do I’ll get working on an update.

Q: I don’t know which CDN my catalog uses for item images. How do I find out?

A: Right click on an item image from your catalog and select View Image or Inspect to see the image URL. If you’re still not sure, email me

Q: I’ve set my catalog settings correctly, so why don’t item images appear?

A: Try an alternate ISBN if possible. Amazon, for example, only supports 10-digit ISBNs. Not all CDNs will have images for every ISBN.


I'm using this on two library sites, both running against SirsiDynix catalogues. Worked flawlessly both times. Lots of options to customize look and feel. Start to finish setup was about 15 minutes each time.
I am so appreciative of this plugin! We need to change images in our carousels for new books all the time and this makes the process so much easier. Thank you, thank you!
installed correctly, followed the settings in the limited instructions. I created an open account and generated a book list, but the plugin never synced to the account. Tried adding a book manually and added the shortcode to a wordpress page. The book cover image was broken and the URL link appeared as double offset so you can't tell what it is. The link works. I just removed it, a waste of 20 minutes.
There are very few things I encounter that just work well. This plugin is one of them. Not only does the plugin work well as designed, but when I reached out to the developer about support for our enhanced content service, he was very responsive and within a couple of weeks had an update with my needed support. Bravo!
This plugin works great for our Library, the new evergreen specific config options are very useful. We have had zero issues with the functionality of the plugin. The code seems to be high quality and is easy to read and allows for easy customization.
I contacted the plugin author to get our catalog added. We receive our catalog through a consortium that uses "profiles" on the SirsyDynix Enterprise catalog so that each library in the consortium gets their own catalog page. This did not work with the previous version, but Jon was nice enough to update the plugin to work with our catalog and the ability to add profile codes, which pulls up the books on our personal catalog profile. Our staff have even been bringing stacks of books to their desk, starting a new bookshelf, and then scanning in the items ISBN. We're already thinking of all kinds of new possibilities, like creating virtual bookshelves to mirror the themed book displays that we do in our actual library. Do be aware that not every book has cover art in the website, so you may get some missing books in your bookshelf. This can easily be fixed by signing up for an account at and adding the book information and cover art.
Посмотреть все 6 отзывов

Участники и разработчики

«Library Bookshelves» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:


Перевести «Library Bookshelves» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений


  • Added support for Evergreen SuperCat feeds. Fixed issue with item titles containing line feeds.


  • Fixed a bug which caused broken links when using Evergreen record number with a location code set. Added the ability create Bookshelves that link to Overdrive or Hoopla, while also having Bookshelves that link to your main catalog.


  • Added support for Koha Reports Web Service and RSS feeds. Fixed a problem with links affecting some TLC LS2 PAC catalogs.


  • Added support for Overdrive and Hoopla. UX improvements to the catalog setting page.


  • Added support for location IDs in Evergreen links. Fixed a bug that broke OpenLibrary links. Added support for Ex Libris Primo.


  • Added support for Calibre OPDS (and HTML) PHP Server (COPS).


  • Added support for Civica Spydus catalogs.


  • Added support for the TLC LS2 PAC API. Now automatically removes items with bad image URLs when building a Bookshelf with an API query.


  • Now supports and WorldCat discovery service catalogs, and the New York Times Books API. Added REST API endpoints for the Bookshelves post type.


  • Added a workaround for Encore users who have recently noticed ContentCafe images failing to load. Added support for the Marmot Pika List API.


  • Added a second Polaris catalog option to fix redirect failures experienced with Polaris 6.3.2292.


  • Fixed a bug which caused duplicate items to appear when using the Symphony Web Services API if an item record had more than one ISBN or UPC.
  • Fixed a bug which prevented some cover images from displaying when using the Sierra API.


  • Added support for Marmot Pika catalogs. Various code improvements and security enhancements.


  • Added the ability to schedule periodic Bookshelf post updates when populating a shelf from an API request. Fixed issue with Syndetics image URLs containing UPC numbers.


  • Added support for older TLC catalogs (Library System pre-5.0). Added support for Baker & Taylor CDN credentials.


  • Fixed bugs related to Sierra API requests.


  • Added support for Sierra API requests. Polaris and WebPAC PRO users can now use ISBNs or UPCs.


  • Added support for WebPAC PRO catalogs.


  • Added an option to specify ISBN or UPC item identifiers when using the Syndetics CDN. Minor code improvements.


  • Added options for processing data from web services. Added support for SirsiDynix Symphony Web Service API. Fixed a DVD image display issue caused by changes in the Syndetics CDN.


  • Added support for Calibre servers. Some text changes and bug fixes.


  • Changed some user-editable CSS defaults. Upgraded Slick to 1.9.0. Added option to select HTTP or HTTPS protocol for catalog URLs.


  • Added a style editor to the settings page. Added Support for TLC catalogs. Added support for optional image ALT attributes to support screen readers. The widget now sorts Bookshelves by post order. Bookshelves now support post revisions. Fixed some bugs.


  • Fixed URL issue for SyrsiDynix Enterprise catalogs not configured with SSL certificates.


  • Added support for item record number and UPC in addition to ISBN for Evergreen ILS and CDN.


  • Added support for EBSCOHost Discovery Service.


  • Fixed PHP 5.3 incompatibility which affected multi-site installs.


  • Changed the ISBN input method to allow copy-and-pasting of delimited lists. Added customizable Slick options for each Bookshelf. Added Evergreen support. Fixed a CSS conflict that may occur with themes or plugins that also include Slick. Fixed some other minor bugs.


  • Fixed a bug preventing some Slick CSS from rendering. Upgraded to Slick 1.8.1.


  • Fixed a bug which prevented plugin settings from being read on some non-standard WordPress installations.


  • Added profile support for Polaris catalogs.


  • Added support for Koha.


  • Fixed a bug which could occur if profile code field is left blank.


  • Added a setting for profile code and added profile support for SirsiDynix Enterprise catalogs.


  • Added support for ChiliFresh CDN. Fixed some Slick settings bugs.


  • Compatible with PHP 5.3+. Links to Encore catalog are now HTTPS.


  • Fixed bug with default settings. Added minimum PHP version.


  • Added support for BiblioCommons, Polaris, and SirsiDynix catalogs.


  • Initial version.