Smarter Navigation
scribu, versusbassz By scribu, versusbassz

September 18, 2015

Smarter Navigation Plugin

Generates more specific previous / next post links based on referrer.

When displaying a single post, you might want to show links to the previous and next posts in the same category.

That’s fine; WordPress let’s you do this with previous_post_link() and next_post_link().

But what if that post is in multiple categories?

What if the user came to that post from a tag page or from an author page? Wouldn’t it make more sense to display previous / next posts from that particular set?

Well, you can do this with a similar pair of functions, provided by this plugin: previous_post_smart() and next_post_smart().

Here’s how it works:

Whenever a visitor goes to an archive page (category, tag, date, author, search etc.), the plugin notes which archive it is in a browser cookie.

Then, if the visitor goes to a single post from that archive page, the plugin generates the prev / next links based on the information in the cookie.

Links: Plugin News | Author’s Site

Installation

  1. Unzip the archive and put the folder into your plugins folder (/wp-content/plugins/).
  2. Activate the plugin from the Plugins admin menu.

Basic usage

Go to your theme directory and open single.php.

Replace

previous_post_link( with `previous_post_smart(` 

and

next_post_link( with `next_post_smart(` 

Referrer link

If you also want to display a link back to the list of posts, add this line (also in single.php):

<?php referrer_link(); ?> 

Posts with multiple categories

If you want for example to higlight the category that the user came from, you can use get_referrer_category() to retrieve the category object.

For further reference, all the template tags are located in smarter-navigation/template-tags.php.

FAQ

“Parse error: syntax error, unexpected…” Help!

Make sure your host is running PHP 5. Add this line to wp-config.php to check:

var_dump(PHP_VERSION); 

Changelog

1.4

  • added support for custom taxonomies. props badfeather
  • fixed strict standards errors. props badfeather

1.3.2

  • fix case when plugin worked incorrect with pagination

1.3.1

  • fix case when multiple browser tabs are involved
  • fix case when multiple posts have the exact same date

1.3

  • store query vars in cookie instead of individual post ids
  • fix referer link
  • more info

1.2.1

  • enable $in_same_cat by default

1.2

  • moved to PHP5 syntax
  • added get_referrer_category() and get_referrer_url() template tags
  • added $in_same_cat and $excluded_categories arguments to previous_post_smart() & next_post_smart()
  • more info

1.1.2

  • added $fallback parameter to *_post_smart()

1.1.1

  • better SQL limit

1.1

  • handles posts split on multiple pages
  • better behaviour when multiple tabs open
  • more info

1.0

Details

  • Version: 1.4
  • Active installations: 500
  • WordPress Version: 3.2
  • Tested up to: 3.5.2

Ratings


5 Stars
4 Stars
3 Stars
2 Stars
1 Stars