Remove JSON API links in header html

Does anyone know how to remove the WordPress JSON API links in the header tag?

<head>
...
<link rel="https://api.w.org/" href="http://example.com/wp-json/" />
<link rel="alternate" type="application/json+oembed" href="http://example.com/wp-json/oembed/1.0/embed?url=..." />
<link rel="alternate" type="text/xml+oembed" href="http://example.com/wp-json/oembed/1.0/embed?url=..." />
</head>

I’d like to avoid using a plugin. If possible, is there a way to remove them with the remove_action function?

remove_action( 'wp_head', 'rsd_link' );

3

I see in filters.php “add_action( ‘wp_head’, ‘rest_output_link_wp_head’, 10, 0 )” Which makes me think this should do the trick to remove rel="https://api.w.org/".

remove_action( 'wp_head',      'rest_output_link_wp_head'              );

The rest… * cough * seem to be in default-filters.php

remove_action( 'wp_head',      'wp_oembed_add_discovery_links'         );

To remove the rest_output_link_header

remove_action( 'template_redirect', 'rest_output_link_header', 11 );

Reference

  • wp_oembed_add_discovery_links
  • rest_output_link_wp_head
  • rest_output_link_header

Leave a Comment