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.