A book cataloguing and review system designed with bookophiles and librarians in mind.
The Book Review Library plugin allows you to create a library of books, with reviews, that include sortable meta information like author, illustrator, genre, subjects as well as ratings. This enables you to list all the books of a particular type (e.g. all books written by a particular author or with a specific rating). With very little effort, the book review system will be up and running on your site right away, with built in filters to add this extra information to the page without any custom theming.
A configurable shortcode is also built in, to display a book list. [book-reviews]
will display all books, while [book-reviews count=3]
will only display 3 books and [book-reviews count=3 covers=true]
will display those reviews with their covers, if they exist.
Two sidebar widgets have also been included. A Recent Reviews widget will display the most recent book reviews that have been added, and a Related Books widget will display a list of similar books when you are looking at a single book or book list by common genre tags.
Theme developers haven’t been forgotten either. If you want to customize the way the reviews display, create and edit these template files:
taxonomy.php
archive-book-review.php
single-book-review.php
Additionally, there are a number of template tags that can be used in your theme, which are found in inc/func.php
.
This plugin uses the Genericons icon font in both the dashboard and the front end to display the book icons and star ratings.
New translations site is up at https://chrisreynolds.io/glotpress/projects/book-review-library/
Please email me at hello at chrisreynolds dot io if you want to be added as a translator.
I sat down with a librarian and a volunteer at the Open Classroom charter school library and asked them what they wanted from the website. The result is this plugin. It was built with a real use-case in mind based on specific feedback I received about things they wanted to share with the school and wider community. If you have questions or suggestions, feel free to let me know.
This plugin hasn’t been in active development for a while. However a major revision/rewrite has been planned for some time. The plugin is stable and works with all versions of WordPress and I’m happy to review/merge pull requests on the GitHub repo or respond to support queries you may have but no new features are planned until after the rewrite is complete.
Book Review Library currently supports one shortcode. This page will list the shortcode variations and parameters supported and describe what each available option and parameter does.
[book-reviews]
Displays a list of books. If used with no additional parameters, this will display all books, ordered by date added, with no covers and no review or excerpt displayed.
[book-reviews count=5]
Defines how many books to display on a page. Takes any interger. Omit to display all posts. The above shortcode would display the 5 most recent book reviews. Can be used in conjunction with any of the other parameters.
[book-reviews covers=true]
Displays the book cover if it’s been added to the review and if the theme supports it. Only accepted argument is true
. Requires the theme to support post thumbnails. The above shortcode would display all books with book covers.
[book-reviews order_by=title]
Changes the order in which the books are displayed. By default, lists by date added. Accepted arguments are date_added
, author
— lists by author’s first name (unless authors have been added last name first, e.g. “Reynolds Chris”), title
— lists by book title. The above shortcode would display all books alphabetically by title.
[book-reviews format=excerpt]
Determines whether to display the full review or an excerpt. Default is no review text displayed. Accepted arguments are full
— displays full book review, excerpt
— displays an excerpt of the review or none
. The above shortcode would display all book reviews with an excerpt of each review.
[book-reviews author=j-k-rowling]
Filters all book reviews by single author. Any slug of an existing book author is accepted. The above shortcode would display all books by J.K. Rowling. Alternately, when wrapped in quotes, you can use the full name of any existing book author. The following would also work to display all books by J.K. Rowling:
[book-reviews author="J.K. Rowling"]
[book-reviews genre=sci-fi]
Filters all book reviews by genre. Any existing genre slug is accepted. The above shortcode would display all books in the Sci-Fi genre. When wrapped in quotes, you can use the full name of any existing genre if the name matches the slug. The following would display all the books in the “Science Fiction” genre if that genre had a slug of science-fiction
:
[book-reviews genre="Science Fiction"]
book-review-library.zip
to the /wp-content/plugins/
directory or use the built-in plugin installer on the WordPress Plugin Dashboard page.This is most likely because your theme is using the_title
in a link or somewhere else. This plugin adds a filter to the_title
to display the book’s author. To prevent this behavior (and fix your problem), go to the Options page in the Book Reviews menu and disable “Display author with title”. The author will no longer display with the book title and will, instead, be displayed with the genre information.
Go to Permalinks in the General Settings and just re-save your settings. This will update your .htaccess file and should resolve the problem.
Here are the known issues with sorting by author. Unfortunately, at this time, there isn’t much that can be done about most of them because sorting by author is kind of a hack…
Books with multiple authors display multiple times in the list.
Reason: This is because we’re doing a separate loop through all the books for each author. When it sees that book with multiple authors again, it will add that as a separate entry.
Workaround: If you have one book that has multiple authors, the easiest solution is to add them as a single author, e.g. “Brad Williams Ozh Richard and Justin Tadlock” — that way the book will only have a single “author” term associated with it.
When I sort by author, it’s sorting by their first name, not their last name.
Reason: This is because each author is entered into the database as a “term”, similar to a category. So, while I can make sure that “Orange” comes after “Apple” I can’t do anything about “Orange Mackenzie” coming after “Apple Smith” programmatically, because if I tried to feed “Smith, Apple” back into the loop that’s being done to pull up the list of books, “Smith, Apple” wouldn’t match any entries and no results would be found.
Workaround: If you must have books sorted by author last name, you can add the authors last name first, e.g. “Williams Brad”.
genre
shortcode parameterauthor
shortcode parameterformat
. Accepted arguments are format=full
, format=excerpt
and format=none
(default). This allows the user to control whether the full review or an excerpt of the review will display when using the shortcode.order_by
— accepted arguments are ‘title’, ‘date_added’ (default), and ‘author’. See Frequently Asked Questions for more information about sorting by author.<a>
tags)float: left
on the book covers.