Yet Another Related Posts Plugin
by mitcho (Michael 芳貴 Erlewine) for WordPress.
Download | Description | Installation | FAQ | Localizations | Versions | Support
Description
Yet Another Related Posts Plugin (YARPP) gives you a list of posts and/or pages related to the current entry, introducing the reader to other relevant content on your site. Key features include:
- An advanced and versatile algorithm: Using a customizable algorithm considering post titles, content, tags, and categories, YARPP calculates a “match score” for each pair of posts on your blog. You choose the threshold limit for relevance and you get more related posts if there are more related posts and less if there are less.
- Templating: New in 3.0! The YARPP templating system puts you in charge of how your posts are displayed.
- Caching: Improved in 3.1! YARPP organically caches the related posts data as your site is visited, greatly improving performance.
- Related posts in RSS feeds: Display related posts in your RSS and Atom feeds with custom display options.
- Disallowing certain tags or categories: You can choose certain tags or categories as disallowed, meaning any page or post with such tags or categories will not be served up by the plugin.
- Related posts and pages: Puts you in control of pulling up related posts, pages, or both.
Installation
Auto display on your website
Copy the folder
yet-another-related-posts-plugin
into the directorywp-content/plugins/
and (optionally) the sample templates insideyarpp-templates
folder into your active theme.Activate the plugin.
Auto display in your feeds
Make sure the “display related posts in feeds” option is turned on if you would like to show related posts in your RSS and Atom feeds. The “display related posts in feeds” option can be used regardless of whether you auto display them on your website (and vice versa).
Widget
Related posts can also be displayed as a widget. Go to the Design > Widgets options page and add the Related Posts widget. The widget will only be displayed on single entry (permalink) pages. The widget can be used even if the “auto display” option is turned off.
Custom display through templates
New in version 3.0, YARPP allows the advanced user with knowledge of PHP to customize the display of related posts using a templating mechanism. More information is available in this tutorial.
Manual installation
For advanced users with knowledge of PHP, there is also an advanced manual installation option.
Frequently Asked Questions
If your question isn’t here, ask your own question at the WordPress.org forums. Please do not email with questions.
Every page just says “no related posts”! What’s up with that?
Most likely you have “no related posts” right now as the default “match threshold” is too high. Here’s what I recommend to find an appropriate match threshold: first, lower your match threshold in the YARPP prefs to something very low, like 1. Most likely the really low threshold will pull up many posts that aren’t actually related (false positives), so look at some of your posts’ related posts and their match scores. This will help you find an appropriate threshold. You want it lower than what you have now, but high enough so it doesn’t have many false positives.
How do I turn off the match score next to the related posts?
The match score display is only for administrators… you can log out of wp-admin
and check out the post again and you will see that the score is gone.
If you would like more flexibility in changing the display of your related posts, please see the templating tutorial.
Does YARPP work with full-width characters or languages that don’t use spaces between words?
YARPP works fine with full-width (double-byte) characters, assuming your WordPress database is set up with Unicode support. 99% of the time, if you’re able to write blog posts with full-width characters and they’re displayed correctly, YARPP will work on your blog.
However, YARPP does have difficulty with languages that don’t place spaces between words (Chinese, Japanese, etc.). For these languages, the “consider body” and “consider titles” options in the “Relatedness options” may not be very helpful. Using only tags and categories may work better for these languages.
Does YARPP slow down my blog/server?
A little bit, yes. However, YARPP 3.0 introduced a new caching mechanism which greatly reduces the hit of the computationally intensive relatedness computation. In addition, I highly recommend all YARPP users use a page-caching plugin, such as WP-SuperCache.
I use DISQUS for comments. I can’t access the YARPP options page!
The DISQUS plugin loads some JavaScript voodoo which is interacting in weird ways with the AJAX in YARPP’s options page. You can fix this by going to the DISQUS plugin advanced settings and turning on the “Check this if you have a problem with comment counts not showing on permalinks” option.
I use DISQUS for comments. My RSS feed is now invalid and cannot be parsed by some clients!
The DISQUS plugin loads some JavaScript voodoo when related posts are displayed, even in the RSS feed. You can fix this by going to the DISQUS plugin advanced settings and turning on the “Check this if you have a problem with comment counts not showing on permalinks” option.
I get a PHP error saying “Cannot redeclare `related_posts()`”
You most likely have another related posts plugin activated at the same time. Please disactivate those other plugins first before using YARPP.
I turned off one of the relatedness criteria (titles, bodies, tags, or categories) and now every page says “no related posts”!
This has to do with the way the “match score” is computed. Every entry’s match score is the weighted sum of its title-score, body-score, tag-score, and category-score. If you turn off one of the relatedness criteria, you will no doubt have to lower your match threshold to get the same number of related entries to show up. Alternatively, you can consider one of the other criteria “with extra weight”.
It is recommended that you tweak your match threshold whenever you make changes to the “makeup” of your match score (i.e., the settings for the titles, bodies, tags, and categories items).
Are there any plugins that are incompatible with YARPP?
Aside from the DISQUS plugin (see above), currently the only known incompatibility is with the SEO_Pager plugin and the Pagebar 2 plugin. Users of SEO Pager are urged to turn off the automatic display option in SEO Pager and instead add the code manually. Other related posts plugins, obviously, may also be incompatible.
Please submit similar bugs by starting a new thread on the WordPress.org forums. I check the forums regularly and will try to release a quick bugfix.
Things are weird after I upgraded.
I highly recommend you disactivate YARPP, replace it with the new one, and then reactivate it.
Testamonials
“One of my favorite [plugin]s I just activated on my blog is called Yet Another Related Posts Plugin… I’ve been blogging seven or eight years now so I have a lot of archives, and it actually surprises me sometimes when I blog about something and I visit the permalink to see I’ve written about it before… and it also increases the traffic on your blog because when they come in just to one entry, they’ll see this other stuff going on.” — Matt Mullenweg, WordPress creator
“The first one I ended up trying was Yet Another Related Posts Plugin (YARPP), and mitcho has really done a fantastic job on it:
- It’s trivial to install.
- You don’t have to edit your WordPress template.
- The relevance is good: the suggested posts are related, and you can tweak thresholds and how things are computed if you want.”
— Matt Cutts, head of Webspam, Google
Localizations
YARPP is currently localized in the following languages:
- Belarussian (
by_BY
) by Fat Cow - Simplified Chinese (
zh_CN
) by Jor Wang (mail at jorwang dot com) of jorwang.com - Cypriot Greek (
el_CY
) by Aristidis Tonikidis (yarpp-el at mitcho dot com) of akouseto.gr - Dutch (
nl_NL
) by Sybrand van der Werf (yarpp-nl at mitcho dot com) - French (
fr_FR
) by Lionel Chollet (yarpp-fr at mitcho dot com) - German (
de_DE
) by Michael Kalina (yarpp-de at mitcho dot com) of 3th.be - Greek (
el_EL
) by Aristidis Tonikidis (yarpp-el at mitcho dot com) of akouseto.gr - Hebrew (
he_IL
) by Mickey Zelansky (yarpp-he at mitcho dot com) of simpleidea.us - Hindi (
hi_IN
) by Outshine Solutions (yarpp-hi at mitcho dot com) - Italian (
it_IT
) by Gianni Diurno (yarpp-it at mitcho dot com) of gidibao.net - Japanese (
ja
) by myself (yarpp at mitcho dot com) - Korean (
ko_KR
) by Jong-In Kim (yarpp-ko at mitcho dot com) - Lithuanian (
lt_LT
) by Karolis Vyčius (yarpp-lt at mitcho dot com) - Polish (
pl_PL
) by Perfecta - Brazilian Portuguese (
pt_BR
) by Rafael Fischmann (yarpp-ptBR at mitcho.com) of macmagazine.br - Russian (
ru_RU
) by Marat Latypov (yarpp-ru at mitcho.com) of blogocms.ru - Swedish (
sv_SE
) by Max Elander (yarpp-sv at mitcho dot com) - Vietnamese (
vi_VN
) by Vu Nguyen (yarpp-vi at mitcho dot com) of Rubik Integration - Ukrainian (
uk_UA
) by Onore (Alexander Musevich) (yarpp-uk at mitcho dot com) - Uzbek (
uz_UZ
) by Ali Safarov (yarpp-uz at mitcho dot com) of comfi.com
If you are a bilingual speaker of English and another language and an avid user of YARPP, I would love to talk to you about localizing YARPP! Localizing YARPP can be pretty easy using the Codestyling Localization plugin. Please contact me first before translating to make sure noone else is working on your language. Thanks!
Support
If you have a question about this plugin, you can speak to other plugin users on the WordPress forums. If you need immediate professional assistance, however, I strongly recommend my friends at the WP Help Center: