With this plugin you can manually set a reference to another post or page in posts und pages and you get all backward references automatically listed for every post and page.
Note May 1st, 2009: The development of this plugin is being discontinued, because I personally do not use WordPress any more. There will be no new release of it from me. It is now still compatible with the latest WordPress version, but soon or later it will be no more. You are welcome to download the source code from the Subversion repository and develop it further.
Usage Basics
Just place [cref post] at your post or page content to get both a forward and a backward link between these. The plugin shows automatically a list of related entries at the end of each post and page.
To start using the plugin is easy: With the import tool you can convert all your internal html links
<a href="...">...</a>
to cross-references. The plugin is safe: You can change the post slugs at any time, the plugin will change all references for you. And if you once do not want to use the plugin any more, you can completely deinstall it leaving your blog with simple html links again.
Usage Details
When writing a post or page, you can refer to other posts or pages by their slug or numerical ID. At the Settings/Cross-References page on your admin panel you can switch between referencing by ID and by slug (even if you already set references, these will be automatically updated).
- [cref post] sets a reference from the current post to post. Example: "As I said on my first post [cref hello-world], I won't write about my job." The current entry is shown at the blog as "As I said on my first post Hello World!, I won't write about my job.", with a html link from "Hello World!" to the "Hello World!" post. At the "Hello World!" post the current post appears under "Related Posts".
- [cref post alternate text] same as [cref post] but the link has another text instead of the post title. Example: "As I said on my [cref hello-world first post], I won't write about my job." This is shown as "As I said on my first post, I won't write about my job.", with a html link from "first post" to the "Hello World!" post.
- [cref.from post] sets a backward reference from post to the current post. Example: "[cref.from my-vision]"
A forward reference is not shown at all, and both the current and the post post appear at each others related posts list.
Related Posts List
You get automatically a list of all the posts and pages that link to the current post or page at the end of each entry.
For a greater control on the appearence and position of this list you can optionally customize your templates:
- Go to the Settings/Cross-References page on your admin panel and set up "Do not show related posts list"
- At your template files place
<?php the_crossreferences() ?>
wherever you want to place the related posts list.
Parameters:
the_crossreferences( $before, $between, $after, $id, $emptylist )
It shows the related posts list for post $id, or for the current post if $id is not given or is 0.
- If there are some related posts: It shows $before, then all post titles with $between in between, then $after.
- If there are no related posts: It shows $emptylist.
You can apply CSS styles to the related posts list, because it is enclosed within a DIV (class="crossreferences").
For theme/plugin developers: You can also control the sort order and the appearence of the related posts list with filters.
For more information and examples about function parameters, styles and filters see the page "Other Notes".
Tools
This plugin adds a page at the admin panel under Settings / Cross-References where you can set the plugin options and run some tools:
- Import all html links
<a href="...">...</a>
that refer to other posts or pages in your blog converting them to [cref...] references.
- Switch between [cref post-slug] and [cref post-ID]. You can switch at any time: if your blog has already some references set, they will be updated.
- Configure the "related posts" lists, or hide it if you call
the_crossreferences()
in your templates.
- Rename a page slug (you can rename a post slug directly within the admin panel / manage posts, but this does not work for pages because of WordPress internals).
- Set how to show references when exporting your blog to XML. You can let them unchanged as [cref...] or show the post title, optionally with a html link to the referred blog post.
- Rebuild the plugin table, if the plugin was some time inactive, in order to fix possible errors at the related posts lists.
- Deinstall completely the plugin, deleting the plugin's table and options from your database. All existing [cref ...] references are optionally replaced with post titles, with or without html links - this ensures your blog remains readable if you decide to remove this plugin.
International
This plugin works for any blog language, because you can customize its wording, and it works fine with multilanguage plugins such as qTranslate. Please let me know if you have any localization issues.
The plugin settings page is right now in this languages:
- English,
- German,
- Italian (translated by Leonardo Saracini),
- Catalan, and
- Belorussian (translated by FatCow).
First installation
- Download the .zip file and entpack it.
- Upload the 'cross-references-plugin' folder as a whole to '/wp-content/plugins'.
- Activate the plugin through the 'Plugins' menu in WordPress.
- Optionally, go to the dashboard / Settings / Cross-references page in order to adjust some settings.
Upgrade from v. 1.3 or newer
You can use the WordPress Plugin Update or update manually:
- Download the .zip file and entpack it.
- Upload the 'cross-references-plugin' folder as a whole to '/wp-content/plugins' overwriting all existing files.
- Optionally, go to the dashboard / Settings / Cross-references page in order to adjust some settings or run some tools.
Upgrade from v. 1.2 or older
You can use the WordPress Plugin Update or update manually:
- Download the .zip file and entpack it.
- Upload the 'cross-references-plugin' folder as a whole to '/wp-content/plugins'.
- Deactivate the plugin through the 'Plugins' menu in WordPress.
- At your server delete the file '/wp-content/plugins/cross-references.php'
- Activate the plugin through the 'Plugins' menu in WordPress.
- Optionally, go to the dashboard / Settings / Cross-references page in order to adjust some settings or run some tools. I recommend you to do a table rebuild, which will ensure the cross-references table at your database has no errors.