Opened 6 years ago
Last modified 20 months ago
#41616 new enhancement
REST API: Expose old slugs
Reported by: |
|
Owned by: | |
---|---|---|---|
Milestone: | Future Release | Priority: | normal |
Severity: | normal | Version: | 4.8.1 |
Component: | REST API | Keywords: | needs-unit-tests good-first-bug has-patch |
Focuses: | rest-api | Cc: |
Description
Expose the old slugs for all posts including custom post types in the REST API.
For example, when building a React-powered app using the WordPress REST API the old slugs are required so that users can be automatically redirected if they clicked on an old link.
To expose the old slugs I created a small plugin (see below):
<?php add_action( 'rest_api_init', 'expose_old_slugs_in_api' ); function expose_old_slugs_in_api() { $post_types = get_post_types( array( 'show_in_rest' => true, 'show_in_nav_menus' => true ) ) ; $args = array( 'get_callback' => 'get_old_slugs_for_api', 'schema' => null ); foreach ($post_types as $type) { register_rest_field( $type, 'old_slugs', $args ); } } function get_old_slugs_for_api( $object ) { //get the id of the post object array $post_id = $object['id']; //return the post meta return get_post_meta( $post_id, '_wp_old_slug' ); }
Change History (4)
#1
@
6 years ago
- Keywords needs-patch needs-unit-tests added
- Milestone changed from Awaiting Review to Future Release
This ticket was mentioned in PR #1164 on WordPress/wordpress-develop by engahmeds3ed.
2 years ago
#3
- Keywords has-patch added; needs-patch removed
Add old_slug
to list of fields returned with post details.
Trac ticket: https://core.trac.wordpress.org/ticket/41616
Note: See
TracTickets for help on using
tickets.
I see no reason not to add this, so long as it's only available in the
edit
context.