JSON API bağlantılarını html başlığından kaldırın


33

WordPress JSON API bağlantılarının başlık etiketinde nasıl kaldırılacağını bilen var mı?

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

Eklenti kullanmaktan kaçınmak istiyorum. Mümkünse, remove_action işleviyle bunları kaldırmanın bir yolu var mı?

remove_action( 'wp_head', 'rsd_link' );

Yanıtlar:


30

Filters.php "add_action ('wp_head', 'rest_output_link_wp_head', 10, 0)" Görüyorum rel='https://api.w.org/'.

remove_action( 'wp_head',      'rest_output_link_wp_head'              );

Gerisi ... * öksürük * default-filters.php içinde görünüyor.

remove_action( 'wp_head',      'wp_oembed_add_discovery_links'         );

Rest_output_link_header'ı kaldırmak için

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

Referans


1
teşekkürler ama bu api.w.orgbenim için bağlantıyı kaldırmaz .
IXN

Hepsini denedim, ancak api.w.org başlığı bulanmayacak! Bu artık son wordpress versiyonlarında işe yaramaz gibi görünmüyor.
Prahlad Yeri

1
Tamam, işe yaradı! Bunu temaya koymak zorunda kaldığın ortaya çıktı function.php. Bunu, tüm temalar için işe yaraması için özel eklentime eklemeye çalışıyordum, ama görünüşe göre bu işe yaramadı.
Prahlad Yeri

26

Bu özel işlev, üstbilgi ve altbilgideki tüm bağlantıları kaldırmaya yardımcı olmalıdır - functions.phpetkin temanızın dosyasına koyabilirsiniz ;

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' );

Ve bu pasajı tamamen DİNLENME API ve yakalanan görünen ziyaret ettiğinizde aşağıda içeriği devre dışı http://example.com/wp-json/idi example.comWeb sitenizin alan adıdır;

{"code":"rest_disabled","message":"The REST API is disabled on this site."}

WordPress REST API'sini devre dışı bırakmak için aşağıdaki pasajı kullanın;

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' );

wp_oembed_add_discovery_linksBaştan iki kez farklı önceliklerle çıkarılması gerekli midir yoksa bu bir yazım hatası mıdır?
Bryan Willis

Ayrıca disable_json_api()eğer en son wordpress kullanıyorsanız sadece 2.x versiyonlu filtreleri ekleyebilir miyiz?
Bryan Willis

3
Özel işlev, işlevi eksik disable_embeds_rewrites. Tüm kaynak github.com/swissspidy/disable-embeds/blob/master/… adresinde bulunabilir .
Drakes,

@ Frenler Evet, haklısınız. Bu kod eksik çünkü geçen sene gönderildiğinden beri bu kod güncellenmedi. Neden burada burada başkalarına yardım etmek için yukarıdaki pasajı değiştirmiyor / güncellemiyorsunuz? Bu yararlı ve kullanışlı olurdu;)
Jentan Bernardus

1
Eklentinize veya temanıza yalnızca yarısını kopyalamak yerine Disable Embed eklentisini kullanmanızı tavsiye ederim. Daha gelecek kanıtı.
swissspidy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.