वर्डप्रेस द्वारा जोड़े गए स्क्रिप्ट और शैली टैग से प्रकार विशेषता निकालें


15
Warning: The type attribute is unnecessary for JavaScript resources.
    From line 10, column 146; to line 10, column 176
    feed/" /> <script type="text/javascript">window

 Warning: The type attribute for the style element is not needed and should be omitted.
    From line 11, column 1798; to line 11, column 1820
    </script> <style type="text/css">img.wp

Warning: The type attribute for the style element is not needed and should be omitted.
    From line 23, column 193; to line 23, column 251
    a='all' /><style id='kirki-styles-global-inline-css' type='text/css'>.envel

Warning: The type attribute is unnecessary for JavaScript resources.
    From line 23, column 905; to line 23, column 1010
    }</style> <script async type="text/javascript" src="http://....../wp-content/cache/minify/df983.js"></scri

Warning: The type attribute for the style element is not needed and should be omitted.
    From line 70, column 126; to line 70, column 167
    70.png" /><style type="text/css" id="wp-custom-css">@media

Warning: The type attribute is unnecessary for JavaScript resources.
    From line 441, column 156; to line 441, column 261
    iv></div> <script defer type="text/javascript" src="http://......./wp-content/cache/minify/26938.js"></scri

Warning: The type attribute is unnecessary for JavaScript resources.
    From line 441, column 272; to line 441, column 302
    </script> <script type='text/javascript'>/*  */

Warning: The type attribute is unnecessary for JavaScript resources.
    From line 443, column 17; to line 443, column 122
    </script> <script defer type="text/javascript" src="http://......../wp-content/cache/minify/6ce07.js"></scri

ये त्रुटियां W3C द्वारा कुछ नए परिचय हैं और उन्होंने पिछले 3-4 दिनों में ही रेंगना शुरू कर दिया है।यहाँ छवि विवरण दर्ज करें

हम इस तरह से स्क्रिप्ट को एंक्यू करते हैं →

wp_register_script( 'custom-js', get_template_directory_uri() . '/js/custom.js', array( 'jquery' ), '1.1', true );
    wp_enqueue_script( 'custom-js' );

क्या हम इसे किसी भी उपरोक्त विधि से ठीक कर सकते हैं?

अद्यतन →

ये वास्तविक त्रुटियां हैं। लाल बॉक्स में W3 कुल कैश से आ रहे हैं।यहाँ छवि विवरण दर्ज करें


5
W3C सत्यापनकर्ता शायद ही कभी Wordpress साइटों या किसी भी लोकप्रिय cms के लिए त्रुटिहीन हो। यह हर साल बदतर और बदतर होता जा रहा है। सत्यापनकर्ता (imho) का उपयोग कुछ बुनियादी त्रुटियों (जैसे altटैग को भूलने , या किसी टैग को बंद करने के लिए भूलने) के लिए उपकरण के रूप में किया जाना चाहिए , लेकिन इसे एक मानक के रूप में नहीं देखा जाना चाहिए जैसा कि यह हुआ करता था।
डेविड स्वॉर्ड

उन्होंने इसे 2 दिसंबर, 017 के बाद पेश किया है। इससे पहले मेरा विषय त्रुटि / चेतावनी मुक्त था। इनसे छुटकारा पाने का कोई रास्ता होना चाहिए।
WP इंटरमीडिएट

1
गौर script_loader_tagहुक, आप एक ऐसा करने में सक्षम हो सकता है str_replace()उन्हें हटाने के लिए।
डेविड स्वॉर्ड

यह इंगित करते हुए कि ये सिर्फ चेतावनी हैं , त्रुटियां नहीं। आपकी साइट अभी भी मान्य होगी।
तैराक

आप निम्नलिखित उत्तर भी देख सकते हैं - stackoverflow.com/a/53380692/2611955
जहीरुल इस्लाम मामून

जवाबों:


16

आप संबंधित हुक का उपयोग करके, एड स्क्रिप्ट और शैलियों type='*'से विशेषताओं और मूल्यों को हटा सकते हैं।wp_enqueue*_loader_tag

निम्नलिखित ने मेरे लिए काम किया:

add_action( 'wp_enqueue_scripts', 'myplugin_enqueue' );

function myplugin_enqueue() {
    // wp_register_script(...
    // wp_enqueue_script(...
}


add_filter('style_loader_tag', 'myplugin_remove_type_attr', 10, 2);
add_filter('script_loader_tag', 'myplugin_remove_type_attr', 10, 2);

function myplugin_remove_type_attr($tag, $handle) {
    return preg_replace( "/type=['\"]text\/(javascript|css)['\"]/", '', $tag );
}

मैंने यह कोशिश की, लेकिन यह मुद्दा तय नहीं किया। हो सकता है कि हमें कुछ हेरफेर की आवश्यकता हो।
WP इंटरमीडिएट

1
मैं अनुमान लगाता हूं कि प्लगइन्स से आपकी कुछ स्क्रिप्ट (जैसे deferटैग के साथ कैश प्लगइन ) का उपयोग नहीं हो सकता है wp_enqueue_scriptऔर तब उपयोग नहीं करेगा *_loader_tag। क्या आप इस बात की पुष्टि कर सकते हैं कि मेरी स्निपेट आपकी साइट के स्रोत कोड पर जोड़ी गई है, custom.jsजो type='text/javascript'अभी भी है?
डेविड स्वॉर्ड

नहीं, मैंने w3 कुल कैश प्लगइन को हटा दिया है। 3/8 त्रुटि गायब हो गई, लेकिन 5 अभी भी बनी हुई है।
WP इंटरमीडिएट

खैर आप पाँच के स्रोत को ट्रैक कर सकते हैं और देख सकते हैं कि टैग्स को संपादित करना संभव है या नहीं। मैं फिर से अनुमान लगाता हूं कि वे शायद उपयोग नहीं करते हैं wp_enqueue। मेरा सुझाव है कि कोड और प्लगइन संदर्भों के साथ जिद्दी 5 को प्रतिबिंबित करने के लिए अपने मूल पोस्ट में एक अद्यतन जोड़ दें - और अधिक मदद करने में सक्षम हो सकता है।
डेविड तलवार

सर, इस बार छवि के साथ त्रुटियों को अपडेट करें।
WP इंटरमीडिएट

14

वर्डप्रेस 5.3 इसे प्राप्त करने के लिए काफी सरल तरीका पेश करता है। HTML 5 के लिए विषय समर्थन रजिस्टर करके scriptऔर style, type=""विशेषता छोड़ दी जाएगी:

add_action(
    'after_setup_theme',
    function() {
        add_theme_support( 'html5', [ 'script', 'style' ] );
    }
);

इसने धन्यवाद का काम किया।
माइकल रोजर्स

1
यह करने का सही तरीका है।
अंकित चौहान

2
अच्छा है! यह स्वीकृत उत्तर होना चाहिए।
जो

3

मिट्टी / जड़ों प्लगइन से यह समझे। अधिकांश भाग के लिए काम किया।

    add_filter( 'style_loader_tag',  'clean_style_tag'  );
add_filter( 'script_loader_tag', 'clean_script_tag'  );

/**
 * Clean up output of stylesheet <link> tags
 */
function clean_style_tag( $input ) {
    preg_match_all( "!<link rel='stylesheet'\s?(id='[^']+')?\s+href='(.*)' type='text/css' media='(.*)' />!", $input, $matches );
    if ( empty( $matches[2] ) ) {
        return $input;
    }
    // Only display media if it is meaningful
    $media = $matches[3][0] !== '' && $matches[3][0] !== 'all' ? ' media="' . $matches[3][0] . '"' : '';

    return '<link rel="stylesheet" href="' . $matches[2][0] . '"' . $media . '>' . "\n";
}

/**
 * Clean up output of <script> tags
 */
function clean_script_tag( $input ) {
    $input = str_replace( "type='text/javascript' ", '', $input );

    return str_replace( "'", '"', $input );
}

यू ने यह कोशिश की
WP इंटरमीडिएट

3

ऊपर style_loader_tagऔर script_loader_tagएप्रोच इस तरह दिखते हैं कि वे जो भी मार्कअप वर्डप्रेस जेनरेट कर रहे हैं उसके लिए काम करना चाहिए, ऐसे मामलों में जहां थीम / प्लगइन उचित एनक्लोजर फ़ंक्शन का उपयोग कर रहा है।

यदि आपके पास अपमानजनक प्लगइन्स हैं जो सहयोग नहीं करते हैं (IIRC Jetpack / एक अपराधी था जब तक कि मेरे पुनरावृत्ति ने इसे संशोधित नहीं किया है!), और आप इस मुद्दे को हल करने के बारे में अडिग हैं, इस तथ्य के बावजूद कि आपके आगंतुक होने की संभावना नहीं है। किसी भी तरह से प्रभावित (उनका ब्राउज़र पृष्ठ ठीक करेगा!), आप हमेशा ऑल-आउट जा सकते हैं और आउटपुट बफरिंग का उपयोग कर सकते हैं:

add_action('wp_loaded', 'output_buffer_start');
function output_buffer_start() { 
    ob_start("output_callback"); 
}

add_action('shutdown', 'output_buffer_end');
function output_buffer_end() { 
    ob_end_flush(); 
}

function output_callback($buffer) {
    return preg_replace( "%[ ]type=[\'\"]text\/(javascript|css)[\'\"]%", '', $buffer );
}

चेतावनी दी है कि जबकि यह एक समाधान है, यह बहुत कुशल नहीं है। preg_replace()ग्राहक के ब्राउज़र पर हर अनुरोध के लिए भेजे जाने से पहले आप Wordpress से पूरे "अंतिम" आउटपुट पर चल रहे होंगे ।

आउटपुट बफ़रिंग को स्टार्ट ( wp_loadedहुक) पर चालू किया जाता है , यानी सही wp + थीम + प्लगइन्स + आदि को पूरी तरह से लोड किया जाता है, और अंतिम क्षण ( shutdownहुक) पर बंद कर दिया जाता है जो PHP के निष्पादन से ठीक पहले फायर करता है। रेगेक्स को हर चीज के माध्यम से काम करना चाहिए , और यह बहुत सारी सामग्री हो सकती है!

style_loader_tagऔर script_loader_tagइसके बाद के संस्करण केवल एक बहुत छोटा स्ट्रिंग (टैग से) तो प्रदर्शन प्रभाव नगण्य है पर regex चलाने दृष्टिकोण।

मुझे लगता है कि अगर आपके पास अपेक्षाकृत स्थिर सामग्री थी और एक कैशिंग परत का उपयोग किया था तो आप प्रदर्शन की चिंता को कम करने का प्रयास कर सकते थे।

php मैनुअल संदर्भ:


यह सबसे अच्छा उत्तर है और केवल बिना किसी त्रुटि के ठीक से काम करता है। धन्यवाद दोस्त।
इविज़न स्टीफन स्टिपिक

एकमात्र कार्यशील समाधान
तैमूर गफ़ोरोव

यदि किसी के जिज्ञासु हैं, तो इनलाइन स्क्रिप्ट के लिए टैग जोड़ते समय वर्डप्रेस style_loader_tagया script_loader_tagफिल्टर का उपयोग नहीं करता है । developer.wordpress.org/reference/classes/wp_scripts/…<script>
firxworx

1

इसने मेरी बहुत मदद की:

add_filter('script_loader_tag', 'clean_script_tag');
  function clean_script_tag($input) {
  $input = str_replace("type='text/javascript' ", '', $input);
  return str_replace("'", '"', $input);
}

Css-tricks (लियोन्नोवाइस) के लिए धन्यवाद: https://css-tricks.com/forums/topic/clean-up-script-tags-in-wordpress/#post-246425


ऊपर दी गई विशिष्ट पोस्ट ओपी वास्तव में यहां बताई गई है: css-tricks.com/forums/topic/clean-up-script-tags-in-wordpress/… नोट: स्क्रिप्ट को काला कर दिया गया है, लेकिन पाठ का चयन करके, आप इसे पढ़ें, और इसे ऊपर पोस्ट किया गया है। लियोन्नोवाइस कोई अतिरिक्त स्पष्टीकरण नहीं देता है। मुझे नहीं पता कि सीएसएस ट्रिक्स ने उसकी स्क्रिप्ट को ब्लैक आउट क्यों किया।
शेरलहोमन

1

स्क्रिप्ट-लोडर में कोड के अनुसार। HTML टाइप थीम सपोर्ट को स्क्रिप्ट और स्टाइल आर्ग्युमेंट्स के साथ जोड़ने पर इसकी विशेषता छोड़ दी जाती है।

लिंक नीचे देखें:

function yourthemeprefix_theme_supportt() {
    add_theme_support(
        'html5',
        array(
            'script', // Fix for: The "type" attribute is unnecessary for JavaScript resources.
            'style',  // Fix for: The "type" attribute for the "style" element is not needed and should be omitted.
        )
    );
}
add_action( 'after_setup_theme', 'yourthemeprefix_theme_support' );

0

@ Realmag77 की बिल्डिंग बंद। यह सभी प्रकार की विशेषताओं को फ़िल्टर करने में सक्षम होने के लिए ऑटोप्टाइज़ प्लगइन का लाभ उठाएगा, लेकिन अगर यह स्थापित नहीं है और सक्रिय नहीं है तो इसे तोड़ दें। फ़ॉलबैक ठीक काम करता है, लेकिन उन लिपियों और स्टाइलशीट को प्लगइन्स के माध्यम से लोड किया जाता है जिन्हें फ़िल्टर नहीं किया जाएगा। मुझे नहीं पता कि उन्हें कैसे फ़िल्टर करना है लेकिन ऑटोपिटाइज़ भाग का उपयोग करके।

/* ==========================================
   Remove type attribute on JS/CSS
   (requires Autoptimize plugin and Optimize HTML checked)
   but with fallback just in case
========================================== */

// If Autoptimize is installed and activated, remove type attributes for all JS/CSS
if ( is_plugin_active( 'autoptimize/autoptimize.php' ) ) {

    add_filter('autoptimize_html_after_minify', function($content) {

        $site_url = home_url();
        $content = str_replace("type='text/javascript'", '', $content);
        $content = str_replace('type="text/javascript"', '', $content);

        $content = str_replace("type='text/css'", '', $content);
        $content = str_replace('type="text/css"', '', $content);

        $content = str_replace($site_url . '/wp-includes/js', '/wp-includes/js', $content);
        $content = str_replace($site_url . '/wp-content/cache/autoptimize', '/wp-content/cache/autoptimize', $content);
        $content = str_replace($site_url . '/wp-content/themes/', '/wp-content/themes/', $content);
        $content = str_replace($site_url . '/wp-content/uploads/', '/wp-content/uploads/', $content);
        $content = str_replace($site_url . '/wp-content/plugins/', '/wp-content/plugins/', $content);

        return $content;

    }, 10, 1);

} else {

    // Fallback to remove type attributes except for those loaded through plugins
    add_filter('style_loader_tag', 'pss_remove_type_attr', 10, 2);
    add_filter('script_loader_tag', 'pss_remove_type_attr', 10, 2);
    function pss_remove_type_attr($tag, $handle) {
        return preg_replace( "/type=['\"]text\/(javascript|css)['\"]/", '', $tag );
    }
}

0
add_action('wp_loaded', 'prefix_output_buffer_start');
function prefix_output_buffer_start() { 
    ob_start("prefix_output_callback"); 
}

add_action('shutdown', 'prefix_output_buffer_end');
function prefix_output_buffer_end() { 
    ob_end_flush(); 
}

function prefix_output_callback($buffer) {
    return preg_replace( "%[ ]type=[\'\"]text\/(javascript|css)[\'\"]%", '', $buffer );
}

डब्ल्यूपीएसई, जीवन में आपका स्वागत है। यदि आप इस समस्या को हल करते हैं और यह कैसे काम करता है, इसके उत्तर के साथ एक स्पष्टीकरण शामिल करें तो यह उपयोगी है।
बटलरब्लॉग

0

ठीक है, क्योंकि मैंने अन्य कोडों और यहां उल्लिखित लोगों के टन की कोशिश की है, अभी भी text/javascriptवर्डप्रेस कोर फ़ाइलों से और अन्य प्लगइन और इनलाइन जावास्क्रिप्ट कोड से भी निशान हैं । इस कोड का परीक्षण करने के बाद, सब कुछ हल हो गया है:

// Remove w3 validator regarding "text/javascript"
add_action('wp_loaded', 'prefix_output_buffer_start');
function prefix_output_buffer_start() { 
    ob_start("prefix_output_callback"); 
}
add_action('shutdown', 'prefix_output_buffer_end');
function prefix_output_buffer_end() { 
    ob_end_flush(); 
}
function prefix_output_callback($buffer) {
    return preg_replace( "%[ ]type=[\'\"]text\/(javascript|css)[\'\"]%", '', $buffer );
}

आशा है कि यह कुछ मदद कर सकता है :)

धन्यवाद


-1

यदि आप WP सबसे तेज कैश के साथ यह अनुभव कर रहे हैं, तो आप प्लगइन PHP स्क्रिप्ट में मैन्युअल रूप से टाइप विशेषता को हटा सकते हैं, यह अन्य प्लगइन्स के साथ भी काम करना चाहिए, लेकिन मुझे उन फ़ाइलों का पता नहीं है जहां वे टाइप विशेषता जोड़ रहे हैं। WP Fastest Cache के लिए आपको wp-content / plugins / wp-fast-cache / inc फोल्डर में जाना चाहिए और js-utilities.php को तब टेक्स्ट / javascript की खोज करनी चाहिए और इसे विशेषता के साथ हटाना चाहिए। मेरे पास W3 Validator पर यह चेतावनी थी और इसे इस तरह से तय किया था, यह भी ध्यान रखें कि जब आप प्लगइन को अपडेट करेंगे तो परिवर्तन को वापस लाया जा सकता है, प्लगइन अपडेट को अक्षम करने के लिए आप wpFastestCache को संपादित कर सकते हैं और प्लगइन संस्करण को कुछ इस तरह से बदल सकते हैं। 10.0.2.7.7.7


-1

आप 2 चरणों में अपनी साइट का HTML कोड अनुकूलित कर सकते हैं:

  • इस प्लगइन को स्थापित करें: https://wordpress.org/plugins/autoptimize/
  • प्लगइन विकल्पों में सक्षम करें 'HTML कोड का अनुकूलन करें?'
  • अपने वर्तमान वर्डप्रेस थीम के functions.php में अगला कोड लागू करें:

    add_filter ('autoptimize_html_after_minify', फ़ंक्शन ($ सामग्री) {

        $site_url = 'https://bulk-editor.com';    
        $content = str_replace("type='text/javascript'", ' ', $content);
        $content = str_replace('type="text/javascript"', ' ', $content);
    
        $content = str_replace("type='text/css'", ' ', $content);
        $content = str_replace('type="text/css"', ' ', $content);
    
        $content = str_replace($site_url . '/wp-includes/js', '/wp-includes/js', $content);
        $content = str_replace($site_url . '/wp-content/cache/autoptimize', '/wp-content/cache/autoptimize', $content);
        $content = str_replace($site_url . '/wp-content/themes/', '/wp-content/themes/', $content);
        $content = str_replace($site_url . '/wp-content/uploads/', '/wp-content/uploads/', $content);
        $content = str_replace($site_url . '/wp-content/plugins/', '/wp-content/plugins/', $content);    
        return $content;    }, 10, 1);

    और अंत में स्लैश के बिना $ site_url को अपनी साइट लिंक में बदलना न भूलें


-1

आप लिंक और स्क्रिप्ट टैग से प्रकार विशेषताएँ निकालने के लिए नीचे दिए गए कार्यों का उपयोग कर सकते हैं।

फ़ंक्शन को नीचे लिखें। linkटैग से प्रकार = पाठ / सीएसएस को हटाने के लिए

/ * स्टाइलशीट * से विशेषता "" टाइप = टेक्स्ट / सीएसएस '"/ निकालें
फ़ंक्शन wpse51581_hide_type ($ src) {
    वापसी str_replace ("type = 'text / css'", '', $ src);
}
add_filter ('style_loader_tag', 'wpse51581_hide_type');

================================================== =========================

प्रकार = 'पाठ / जावास्क्रिप्ट' को हटाने के लिए फ़ंक्शन में नीचे फ़ंक्शन चिपकाएँ script

// * स्क्रिप्ट और शैली से प्रकार टैग निकालें
add_filter ('script_loader_tag', 'codeless_remove_type_attr', 10, 2);
समारोह codless_remove_type_attr ($ टैग, $ संभाल) {
    वापसी preg_replace ("/ type = ['\"] पाठ \ / (जावास्क्रिप्ट | css) [' \ "] /", '', $ टैग);
}

उत्तर सही है, लेकिन फिर भी किसी ने नकारात्मक मतदान किया
Infoconic
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.