Plugin Directory

Test out the new Plugin Directory and let us know what you think.

Mendeley Plugin

Mendeley Plugin for WordPress is a plugin for displaying information from the Mendeley "shared bibliography system" in WordPress blogs.

Mendeley Plugin for WordPress is a plugin for displaying information from the Mendeley "shared bibliography system" (www.mendeley.com) in WordPress blogs.

Using the public API from Mendeley, meta-information on documents in personal, public or shared collections is loaded and formatted as bibliographic entries.

The lists can be included in posts or pages using WordPress shortcodes:

[mendeley type="folders" id="xxx" groupby="xxx"]
[mendeley type="groups" id="xxx" groupby="xxx" style="cover,link"]
[mendeley type="groups" id="xxx" sortby="xxx" sortbyorder="xxx" style="short"]
[mendeley type="groups" id="xxx" groupby="xxx" filter="author=Michael Koch"]
[mendeley type="groups" id="xxx" groupby="xxx" filter="author=Michael Koch;type=journal"]
[mendeley type="groups" id="xxx" groupby="xxx" filter="type=book_section"]
[mendeley type="groups" id="xxx" groupby="xxx" csl="http://DOMAINNAME/csl/custom_style.csl" style="cover,link"]

- the attribute "id" is the Mendeley identifier of the group or folder - You can find this in Mendeley (Web or desktp app) - or use the function "Request Collection Ids" in the backend of the plugin - example value: 1f0508c0-8256-3ba7-b924-485e720245d5
- the attribute "type" can be set to "folders" or "groups" or "own"
- the attribute "groupby" is optional; possible values currently are: "authors", "year"
- the attribute "sortby" is optional; possible values currently are: "authors", "year"
- the attributes "sortbyorder" and "groupbyorder" can have the values "asc" and "desc"
- sorting on the sort key is done before grouping on the group key if both are provided
- in "filter" one or more equal matches can be filtered for; if more than one filter rule is specified, than documents are displayed only when all filter rules match 
- possible attribute names to filter for are: type, title, year, author, editor, publisher, tag, keyword, abstract (when filtering for tag or keyword, a substring search is performed, so "blog" also matches "microblog")
- possible values for attribute type: ['journal' or 'book' or 'generic' or 'book_section' or 'conference_proceedings' or 'working_paper' or 'report' or 'web_page' or 'thesis' or 'magazine_article' or 'statute' or 'patent' or 'newspaper_article' or 'computer_program' or 'hearing' or 'television_broadcast' or 'encyclopedia_article' or 'case' or 'film' or 'bill']
- the attribute "style" controlls the output - you can specify several values separated by commas - possible values are: cover (add cover images), link (add links to full texts), short (use a short version - i.e. for widgets - not possible if csl formatting is used)
- the attribute "csl" is optional; the value must contain a valid URL with a .csl file

Changes in v1.0 (December 2014)

In v1.0 of the plugin there are some important changes due to support for the new Mendeley API.

The most important issue is that ids of groups and folders now have to be uuids - so, you have to look up the ids again - e.g. using the list feature in the settings page of the plugin in the WordPress backend.

Additionally, some attribute names and possible values have been changed - so for example filters for type have to be changed.

We now also no longer support the outdated collection types "shared", "sharedcollections", "collections" - Only "groups" and "folders" are supported.

Known Problems

The current version of the plugin (v1.0) has one known problem with requesting and authorizing access tokens: When the activity is triggered in the backend using the Safari browser, the redirection to the Mendeley API site might not work (blank page) - If this is the case for you, please try with a different browser. For us Firefox has always worked.


If you do not specify a CSL stylesheet, full entries are formatted the following way - so, the style can be tailored using CSS.

    <h2 class="wpmgrouptitle">grouptitle</h2>
    <p class="wpmref">
       <span class="wpmauthors">$authors&lt/span>
       <span class="wpmyear">($year)</span>: 
       <span class="wpmtitle">$title</span>
       , <span class="wpmoutlet">$publication_outlet</span>
       <span class="wpmvolume">$volume</span><span class="wpmissue">($issue)</span>
       , <span class="wpmeditors">$editors</span>
       , <span class="wpmpages">$pages</span>
       , <span class="wpmpublisher">$city: $publisher</span>
       , <span class="wpmurl"><a target="_blank" href="$url"><span class="wpmurl$urltxt">$urltxt<>/span</a&gt</span>
  • urltxt is per default "url" or "pdf", "ps", "zip" if this is the extension of the file referenced by the url

By adding some lines in your style sheets, you can format the output according to your needs. One example:

.wpmref {

.wpmauthors {
color: #666666;
content: ": ";
.wpmyear {
color: #666666;
content: "\"";
content: "\"";

.wpmurlpdf:before {
content: url("/image/pdf.gif");

.wpmpages {
font-style: italic;
color: #336633;

Additionally, there are widgets to display the content of collections or shared collections in widget areas of a theme (list of titles with links only). The output in the widgets is formatted the following way:

    <ul class="wpmlist">
    <li class="wpmlistref">
    title (if url is defined, then this title is linked to url)

The title will additionally be equipped with a div-tag including the full reference in the title attribute - which will in most browsers display the full reference when you are hoovering over the title with the mouse pointer.

You can use the plugin in non widgetized themes, just try

echo $mendeleyPlugin->formatWidget("groups", 763, 10, array ('author' => 'Michael Koch'));

For using the plugin you have to obtain an API key from Mendeley, enter this Customer Key in the configuration section of the plugin, and authorize the API. To do so the following steps have to be taken:

  1. install plugin
  2. activate plugin
  3. get Customer Key and Customer Secret from http://dev.mendeley.com/
  4. enter the information in the wp-mendeley tab in the backend
  5. press "Get Access Key" on the wp-mendeley configuration page
  6. then you are redirected to the Mendeley web site to authorize the request, and redirected back to the blog (see Known Problems when this step does not work)
  7. now you can use shortcodes in your pages and blogs

Details presentation

The document lists in the widgets only include the title of the document and a link. Per default the link is either the url attribute of the document - or if not set a link to the doi attribute in the document if set.

To present more details for those list entries without leaving the web site beginning in Version 0.8.1 you have two options:

1) if enabled in the configuration, the list items will include mouseover tooltips showing the full reference - this can be constructed in a simple default way or using CSL stylesheets.

2) if a details url is set in the configuration, all list items are linked to $DETAILSURL?docid=XXXX You can create a details page on your WordPress installation in the following way: - create a page - insert the [mendeleydetails]...[/mendeleydetails] shortcode in the page - the text between the shortcodes is interpreted the following way: every tag "{attributename}" is replaced by the corresponding attribute in the Mendeley document - if you only use the simple shortcode [mendeleydetails] then the plugin looks for the file "mendeley-details-template.tpl" in the plugin directory and interprets the content of this file in the same way

In addition to all attributes returned from Mendeley (abstract, authors, doi, editors, translators, categories, identifiers, issue, keywords, mendeley_url, pages, producers, publication_outlet, published_in, tags, title, type, url, uuid, volume, year - also see the Mendeley API documentation at http://dev.mendeley.com/methods/#core-document-attributes) you can use the special attribute "full_reference" to insert a full reference. The attribute can be annotated with a CSL url to do the formatting according to a CSL stylesheet: {full_reference,http://site/url.csl}

When caching PDF files is enabled, you additionally can use "filelink" which will produce the word PDF with a link to the PDF file - and the special attribute "coverimage" which will produce an image tag with a link to an image of the first page of the PDF. To switch off generating file links for single documents (e.g. because of copyright issues), you can add the tag "nofilelink" to the tags of the document in Mendeley.

JSON data source

In version 0.7 we added the functionality to create a JSON data source - e.g. to be used as data source in Exhibit/Simile application.

For example the page http://www.kooperationssysteme.de/pub/cscm/ uses such a data source in an interactive JavaScript application to search the references.

The following line is used in the Exhibit/Simile application:

In the directory "examples" you find a file bibexhibit.tpl.php that can be placed in your WordPress theme directory. Then you can create a new page with the Template BibExhibit that will show the application with the data source. Do not forget to edit the file - specify the id of the Mendeley group you want to access in the link-line.

CSL integration

When you specify a CSL (citation style language) stylesheet via the csl parameter, the formatting specified in the stylesheet is used to generate details.

A .csl file must be a XML formatted file, containing the style tags defined by the citation Style language. For further information of CSL you should visit the citationstyles.org website. If you want to use an existing CSL style, you should browse the zotero style repository on zotero.org/styles. For creating your own CSL file, you can either write an XML-file or use a visual editor e.g. editor.citationstyles.org/visualEditor/.

We include some CSL files in the sub directory "style" - So, an easy way to try the functionality could be to link to one of those files - e.g. by an URL like the following: http://YOURDOMAIN/wp-content/plugins/mendeleyplugin/style/apa.csl

For formatting entries via CLS, we are relying on the CiteProc.php formatting engine by Ron Jerome, which usually is included in the plugins distribution. (See https://bitbucket.org/rjerome/citeproc-php for the original project.)

The library includes locale-files for adapting the output to different languages. We have only included the DE and EN locales here. Please load additional locales from https://bitbucket.org/rjerome/citeproc-php/src/ and add them in the locale folder in the plugin folder.

Source Code Documentation

The source code of the plugin is more or less documented. Here some information about the overall structure:

The main function of the plugin is "formatCollection". This function is called from different places in order to create a formatted list of references. In this function

  • first the output cache ist checked (getOutputFromCache) - in this cache completely formatted outputs for queries are stored
  • then the list of documents is retrieved from Mendeley - depending on the type of collection (group or folder) - either by getDocumentListForFolder() oder getDocumentsForGroup()
  • and then the documents are sorted and grouped according to the request (groupDocs)
  • finally (in the loop producing the output) filter parameters are checked (checkFilter)
  • the output for single references is produced using the functions formatDocumentShort() and formatDocument()

The following Mendeley API calls are used

  • retrieving document list from a group: /documents?group_id=GROUPID
  • retrieving document list from a folder: /folders/FOLDERID/documents; Iterate /documents/DOCID

Thanks ...

Thanks for various contributions to Rhodri Cusack and Matthias Budde.

Thanks for contributing to the CSL integration in V0.8 to Philipp Plagemann, Claudia Armbruster and Martin Wandtke. Thanks for contributing to the details display in V0.8.1 to Björn Trappe.

Requires: 4.0 or higher
Compatible up to: 4.7.1
Last Updated: 1 month ago
Active Installs: 300+


4 out of 5 stars


3 of 4 support threads in the last two months have been marked resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,1,1 0,1,0
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,3,3 100,1,1 100,1,1 100,2,2 100,2,2
100,1,1 100,1,1
100,1,1 100,1,1