删除标题html中的JSON API链接

时间:2015-12-10 作者:Jordan

有人知道如何删除header标记中的WordPress JSON API链接吗?

<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>
我想避免使用插件。如果可能,是否有方法使用remove\\u action功能删除它们?

remove_action( \'wp_head\', \'rsd_link\' );

3 个回复
最合适的回答,由SO网友:jgraup 整理而成

我在过滤器中看到。php“add\\u action(\'wp\\u head\',\'rest\\u output\\u link\\u wp\\u head\',10,0)”,这让我觉得这应该可以删除rel=\'https://api.w.org/\'.

remove_action( \'wp_head\',      \'rest_output_link_wp_head\'              );
其余的…*<咳嗽似乎在默认过滤器中。php

remove_action( \'wp_head\',      \'wp_oembed_add_discovery_links\'         );
要删除rest_output_link_header

remove_action( \'template_redirect\', \'rest_output_link_header\', 11 );
参考文献

SO网友:Jentan Bernardus

此自定义函数应有助于删除页眉和页脚中的所有链接-您可以将其放在functions.php 活动主题的文件;

function remove_json_api () {

    // Remove the REST API lines from the HTML Header
    remove_action( \'wp_head\', \'rest_output_link_wp_head\', 10 );
    remove_action( \'wp_head\', \'wp_oembed_add_discovery_links\', 10 );

    // Remove the REST API endpoint.
    remove_action( \'rest_api_init\', \'wp_oembed_register_route\' );

    // Turn off oEmbed auto discovery.
    add_filter( \'embed_oembed_discover\', \'__return_false\' );

    // Don\'t filter oEmbed results.
    remove_filter( \'oembed_dataparse\', \'wp_filter_oembed_result\', 10 );

    // Remove oEmbed discovery links.
    remove_action( \'wp_head\', \'wp_oembed_add_discovery_links\' );

    // Remove oEmbed-specific JavaScript from the front-end and back-end.
    remove_action( \'wp_head\', \'wp_oembed_add_host_js\' );

   // Remove all embeds rewrite rules.
   add_filter( \'rewrite_rules_array\', \'disable_embeds_rewrites\' );

}
add_action( \'after_setup_theme\', \'remove_json_api\' );
此代码段完全禁用REST API,并在您访问时显示以下内容http://example.com/wp-json/, 是example.com 是您网站的域名;

{"code":"rest_disabled","message":"The REST API is disabled on this site."}
要禁用WordPress REST API,请使用以下代码段;

function disable_json_api () {

  // Filters for WP-API version 1.x
  add_filter( \'json_enabled\', \'__return_false\' );
  add_filter( \'json_jsonp_enabled\', \'__return_false\' );

  // Filters for WP-API version 2.x
  add_filter( \'rest_enabled\', \'__return_false\' );
  add_filter( \'rest_jsonp_enabled\', \'__return_false\' );

}
add_action( \'after_setup_theme\', \'disable_json_api\' );

SO网友:Jodyshop

禁用oEmbed发现链接和wp嵌入的最佳解决方案和简单方法。min.js是通过在主题中添加此代码段实现的(function.php).

remove_action( \'wp_head\', \'wp_oembed_add_discovery_links\', 10 ); remove_action( \'wp_head\', \'wp_oembed_add_host_js\' ); remove_action(\'rest_api_init\', \'wp_oembed_register_route\'); remove_filter(\'oembed_dataparse\', \'wp_filter_oembed_result\', 10);

希望这可以帮助一些人,因为在使用最新版本的WordPress时,上述解决方案对我不起作用。

相关推荐

Wp-Content/Themes文件夹在哪里?

我想为我的wordpress站点创建一个子主题(仅供参考),这样我的更改就不会被每次更新所覆盖。显然,我需要在wp-content/themes文件夹中为子主题创建一个子文件夹。问题是,我找不到它。我曾尝试将wp内容和wp内容/主题添加到域中-它生成了一个空白的白色页面。我试着在spotlight文件搜索(是的,我有一台mac电脑)中搜索它(只是“wordpress”),它只找到了一些我在2010年安装的wordpress文件夹,我甚至都不记得做过这些。由于我最近在过去两周(2014年5月)建立了这个网站