Description
Content Relations lets you link a post to any other post. Relations are typed – you name the kind of relation („see also”, „part of”, whatever fits) – and ordered by dragging.
In the block editor, a Content Relations panel in the document sidebar edits a post’s relations the same way you’d edit categories: grouped by type, saved with the rest of the post, no separate save button. The classic editor keeps the same editor in a meta box instead.
A Related content block – a variation of the core Query Loop block – lists a post’s own related posts under one relation type, in the order you set in the sidebar, meta box, or the Tools screen. Drop it in wherever a „related articles” section belongs; it uses the same layout options as any other Query Loop.
Tools Content Relations lists every relation type in a sortable, searchable table. Opening a type there lets you reorder or remove its relations across every post that uses it, grouped by source post, with drag handles or up/down buttons.
Each related post’s relations are exposed on the REST API under a content_relations field, so a headless front end can read them too. Relations to unpublished posts are hidden from anyone who cannot edit posts.
A WP_Query extension lets a query filter by relation: give it a related post id and, optionally, a relation type, and it returns the posts related to it.
Arbitrary section
Installation
- Install the plugin through Plugins Add New, or upload it to
/wp-content/plugins/. - Activate it through the Plugins menu.
- A Content Relations panel appears in the block editor’s document sidebar (a meta box in the classic editor), and a settings page under Tools Content Relations lists the relation types.
FAQ
-
Add the Related content block (in the inserter, under the same category as the Query Loop block) to a post, and pick a relation type in its settings panel. It lists that post’s related posts of that type, in the order you set in the sidebar or meta box.
-
How do I read relations on the front end myself?
-
Every post’s REST response carries a
content_relationsfield with its relations. In PHP,content_relations_get_relations_by_post_id( $post_id )returns the same data. -
Are relations to drafts or private posts visible?
-
No. On the REST API they are filtered out for anyone who cannot edit posts, and the editor’s search only offers posts the current user may read.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Content Relations” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Content Relations” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.1.0
Features
* add a Query Loop variation for related content (3a51a66)
* add an edit screen for a relation type, grouped by source post (a0c3b74)
* rebuild the Tools screen as a WP_List_Table (bec0d3f)
* rework the type-edit screen onto ph-postqueue’s item table (00f4d5e)
* show each related post’s type next to its title (062ac13)
Bug Fixes
* hide the Query Loop’s post type, order and sticky controls (15385ef)
* link the relation type’s name to its edit screen (658d69c)
* raise Requires at least to 6.6 (75fd296)
* redirect the misspelled legacy Tools page slug (78bf51c)
* repair and complete the translations (11270a8)
* replace the redundant „Back to types” button with Reset (d48a8b5)
* translate the JS UI strings in PHP instead of at runtime (5bdb58b)
1.0.16
Bug Fixes
* build the relations admin UI with the DOM instead of HTML strings (3ac2b97)
* close information disclosure, SQL injection and CSRF holes (3d4fa95)
1.0.15
- Fix: Remove deprecated dynamic properties
1.0.14
- Bugfix: Filter unpublished relations from rest api
1.0.13
- Bugfix: error when using „Members” plugin
1.0.12
- Optimization: check to prevent empty types
- Optimization: if there is only one relation type this type is preselected
- Optimization: show all types again if relations types are reopened and there is no search input
1.0.11
- Feature: Filter for meta box title.
- Optimization: post context in ajax search query for meta box content search.
1.0.10
- Feature: Before and after table in post meta box actions.
1.0.9
- Feature: two new filters for meta box autocomplete args
- Optimization: Post type names in post edit meta box autocomplete
1.0.8
- hookable into grid posts box
1.0.7
- new public function to get the relation store for a post id
- New filter: with content_relations_add_meta_box you can disable meta box for posts
- db.php functions refactoring
- public function with ph_ prefix were deprecated
- some more public functions were deprecated
1.0.6
- WP_Query extension
1.0.5
- Bugfix for WP multisite setups
1.0.4
- Sortable handler icon
- REST API compatibility
1.0.3
- sortable relations
1.0.2
- typo fix in function name „ph_content_relations_add_realtion” => „ph_content_relations_add_relation”
- WordPress 4.4 compatibility tests
1.0.1
- Some public functions added
1.0
- First release