Make WordPress Core

Opened 3 years ago

Last modified 3 years ago

#41616 new enhancement

REST API: Expose old slugs

Reported by: crosescu Owned by:
Milestone: Future Release Priority: normal
Severity: normal Version: 4.8.1
Component: REST API Keywords: needs-patch needs-unit-tests
Focuses: rest-api Cc:


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):

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 (1)

#1 @rmccue
3 years ago

  • Keywords needs-patch needs-unit-tests added
  • Milestone changed from Awaiting Review to Future Release

I see no reason not to add this, so long as it's only available in the edit context.

Note: See TracTickets for help on using tickets.