हेडर HTML में JSON एपीआई लिंक निकालें


33

क्या किसी को पता है कि हेडर टैग में वर्डप्रेस JSON एपीआई लिंक को कैसे हटाया जाए?

<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_action( 'wp_head', 'rsd_link' );

जवाबों:


30

मैं फ़िल्टर में देख रहा हूँ। "add_action ('wp_head', 'rest_output_link_wp_head', 10, 0)" जो मुझे लगता है कि इसे हटाने की तरकीब करनी चाहिए rel='https://api.w.org/'

remove_action( 'wp_head',      'rest_output_link_wp_head'              );

बाकी ... * खांसी * डिफ़ॉल्ट- filter.php में लगती है

remove_action( 'wp_head',      'wp_oembed_add_discovery_links'         );

Rest_output_link_header को निकालने के लिए

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

संदर्भ


1
धन्यवाद, लेकिन यह api.w.orgमेरे लिए लिंक को दूर नहीं करता है।
IXN 12

उन सभी की कोशिश की, लेकिन api.w.org हेडर हिलता नहीं है! यह अब हाल के वर्डप्रेस संस्करणों में काम नहीं करता है।
प्रहलाद यारी

1
सब ठीक है, यह काम किया! बाहर मुड़ता है आप इस विषय में डाल दिया है function.php। मैं इसे अपने कस्टम प्लगइन में डालने की कोशिश कर रहा था ताकि यह सभी विषयों के लिए काम करे, लेकिन जाहिर है कि यह काम नहीं करता है।
प्रहलाद यारी

26

इस कस्टम फ़ंक्शन को हेडर और फुटर में सभी लिंक को हटाने में मदद करनी चाहिए - आप इसे 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 एपीआई को निष्क्रिय कर देता है और जब आप यात्रा करते हैं तो नीचे दी गई सामग्री को दिखाते हैं 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' );

क्या wp_oembed_add_discovery_linksअलग-अलग प्राथमिकताओं के साथ दो बार सिर से निकालना आवश्यक है या यह एक टाइपो है?
ब्रायन विलिस

इसके अलावा disable_json_api()अगर नवीनतम वर्डप्रेस का उपयोग करके हम केवल संस्करण 2.x फिल्टर शामिल कर सकते हैं या दोनों की आवश्यकता है?
ब्रायन विलिस

3
कस्टम फ़ंक्शन फ़ंक्शन को याद कर रहा है disable_embeds_rewrites। पूरा स्रोत github.com/swissspidy/disable-embeds/blob/master/… पर पाया जा सकता है ।
प्रात:

@Drakes हाँ, आप सही कह रहे हैं। यह याद आ रहा है क्योंकि यह कोड अपडेट नहीं किया गया है क्योंकि यह पिछले साल पोस्ट किया गया है। इसके बजाय यहां दूसरों की मदद करने के लिए ऊपर स्निपेट को संशोधित / अपडेट क्यों नहीं किया जाता है? यह उपयोगी और उपयोगी होगा;)
जेंटन बर्नार्डस

1
मैं इसके बजाय अपने प्लगइन या विषय में केवल आधे की नकल करने के बजाय अक्षम एम्बेड प्लगइन का उपयोग करने की सलाह दूंगा। यह भविष्य का प्रमाण है।
swissspidy
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.