ওয়ার্ডপ্রেস দ্বারা যুক্ত স্ক্রিপ্ট এবং স্টাইল ট্যাগ থেকে টাইপ বৈশিষ্ট্য সরান


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

এই ত্রুটিগুলি ডব্লু 3 সি দ্বারা নতুন কিছু পরিচিতি এবং তারা কেবল গত 3-4 দিনের মধ্যে ক্রপ হতে শুরু করেছে।এখানে চিত্র বর্ণনা লিখুন

আমরা স্ক্রিপ্টগুলি এর মতো করে তৈরি করি →

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

আমরা কি কোনওভাবে উপরের উত্সাহী পদ্ধতি থেকে এটি ঠিক করতে পারি?

আপডেট →

এই প্রকৃত ত্রুটি। লাল বাক্সে ডাব্লু 3 মোট ক্যাশে থেকে আসছে।এখানে চিত্র বর্ণনা লিখুন


5
ডাব্লু 3 সি বৈধকারক খুব কমই ওয়ার্ডপ্রেস সাইট বা কোনও জনপ্রিয় সিমসির জন্য ত্রুটিবিহীন হিসাবে ফিরে আসে। এটি প্রতি বছর খারাপ-খারাপ হচ্ছে বলে মনে হচ্ছে। বৈধকরণকারী (ইমো) কিছু প্রাথমিক ত্রুটিগুলি প্রকাশের জন্য সরঞ্জাম হিসাবে ব্যবহার করা উচিত (যেমন altট্যাগগুলি ভুলে যাওয়া বা কোনও ট্যাগ বন্ধ করতে ভুলে যাওয়া) তবে এটি আগের মতো কোনও মান হিসাবে দেখা উচিত নয়।
ডেভিড তরোয়াল

তারা এটি ডিসেম্বর 2, 017 এর পরে চালু করেছে। এর আগে আমার থিমটি ত্রুটি / সতর্কতা মুক্ত ছিল। এগুলি থেকে মুক্তি পাওয়ার কিছু উপায় থাকতে হবে।
ডাব্লুপি ইন্টারমিডিয়েট

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

আমি এটি চেষ্টা করেছিলাম, কিন্তু এটি সমস্যার সমাধান করেনি। হতে পারে আমাদের কিছু হেরফের দরকার
ডাব্লুপি ইন্টারমিডিয়েট

1
আমি অনুমান করি যে আপনার কিছু স্ক্রিপ্টগুলি প্লাগইনগুলি (যেমন deferট্যাগ সহ ক্যাশে প্লাগইন রয়েছে ) ব্যবহার করছে না wp_enqueue_scriptএবং ব্যবহার করবে না *_loader_tag। আপনি নিশ্চিত দয়া করে করতে পারেন যে আমার স্নিপেট যুক্ত আপনার সাইটের সোর্স কোড উপর, যে custom.jsকরে আছে type='text/javascript'এখনও?
ডেভিড তরোয়াল

না। আমি ডাব্লু 3 মোট ক্যাশে প্লাগইন মুছে ফেলেছি। 3/8 ত্রুটি অদৃশ্য হয়ে গেলেও 5 টি এখনও রয়ে গেছে।
ডাব্লুপি ইন্টারমিডিয়েট

ওয়েল আপনি পাঁচটির উত্সটি ট্র্যাক করতে পারেন এবং ট্যাগগুলি সম্পাদনা করা সম্ভব কিনা তা দেখুন। আমি আবার অনুমান করি যে তারা সম্ভবত ব্যবহার করে না wp_enqueue। কোড এবং প্লাগইন রেফারেন্স সহ জেদী 5 বাম প্রতিফলিত করার জন্য আমি আপনার মূল পোস্টে একটি আপডেটের পরামর্শ দিচ্ছি - সম্ভবত আরও কিছু সহায়তা করতে সক্ষম হবে।
ডেভিড তরোয়াল

স্যার, এবার ছবিটির সাথে ত্রুটিগুলি আপডেট করেছেন।
ডাব্লুপি ইন্টারমিডিয়েট

13

ওয়ার্ডপ্রেস 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 );
}

আপনি কি এটি চেষ্টা করেছিলেন
ডাব্লুপি ইন্টারমিডিয়েট

3

style_loader_tagএবং script_loader_tagচেহারা চান তারা যাই হোক না কেন জন্য মার্কআপ ওয়ার্ডপ্রেস উৎপাদিত হয়, ক্ষেত্রে যেখানে থিম / প্লাগিন সঠিক সারিবদ্ধ ফাংশন ব্যবহার করে হয় কাজ করা উচিত উপরে পন্থা।

যদি আপনার আপত্তিজনক প্লাগইন থাকে যা সহযোগিতা করে না (আইআইআরসি জেটপ্যাকটি অপরাধী ছিল / যদি না আমার স্মরণিকাটি এটি সংশোধন করে তবে নতুন সংস্করণ হয়!), এবং আপনার দর্শকদের সম্ভবত সম্ভাবনা নেই এমন সত্ত্বেও আপনি এই সমস্যাটি সমাধানে অনড় রয়েছেন যে কোনওভাবে প্রভাবিত হয়েছে (তাদের ব্রাউজারটি পৃষ্ঠাটি সূক্ষ্মভাবে রেন্ডার করবে!), আপনি সর্বদা সর্বস্বান্ত হয়ে যেতে পারেন এবং আউটপুট বাফারিং ব্যবহার করতে পারেন:

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()প্রতি অনুরোধের জন্য ক্লায়েন্টের ব্রাউজারে পাঠানোর আগে আপনি ওয়ার্ডপ্রেস থেকে সম্পূর্ণ "চূড়ান্ত" আউটপুট চালিয়ে যাবেন ।

আউটপুট বাফারিং শুরুতে ( wp_loadedহুক) চালু করা হবে, যেমন ডাব্লুপি + থিম + প্লাগইন + ইত্যাদি পুরোপুরি লোড হয়ে গেছে, এবং শেষ মুহুর্তে ( shutdownহুক) বন্ধ করা হয় যা পিএইচপি বাস্তবায়ন বন্ধ করার ঠিক আগে আগুন জ্বলে ওঠে । রেজেক্স অবশ্যই সমস্ত কিছুর মধ্য দিয়ে কাজ করবে এবং এটি প্রচুর সামগ্রী হতে পারে!

style_loader_tagএবং script_loader_tagউপরে শুধুমাত্র একটি খুব ছোট স্ট্রিং (ট্যাগ নিজেই) যাতে কর্মক্ষমতা প্রভাব তুচ্ছ উপর Regex চালানোর পন্থা।

আমি মনে করি আপনার যদি তুলনামূলকভাবে স্থিতিশীল সামগ্রী থাকে এবং আপনি একটি ক্যাচিং স্তর ব্যবহার করেন তবে আপনি পারফরম্যান্স উদ্বেগ হ্রাস করার চেষ্টা করতে পারেন।

পিএইচপি ম্যানুয়াল রেফারেন্স:


এটি সেরা উত্তর এবং কোনও ত্রুটি ছাড়াই কেবল সঠিকভাবে কাজ করে। ধন্যবাদ মানুষ.
আইভিজান স্টিফান স্টিপিয়েć

একমাত্র কার্যক্ষম সমাধান
তৈমুর গ্যাফোরভ

কারও কৌতূহল থাকলে, ওয়ার্ডপ্রেস ইনলাইন স্ক্রিপ্টগুলির জন্য ট্যাগ যুক্ত করার সময় এইগুলি 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);
}

সিএসএস-ট্রিক্সকে ধন্যবাদ (লিওনোভাইস): 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

স্ক্রিপ্ট-loader.php কোড অনুযায়ী টাইপ যখন HTML5 থিম সমর্থন স্ক্রিপ্ট এবং শৈলী আর্গুমেন্ট সহ যোগ করা হয় অ্যাট্রিবিউট বাদ দেওয়া হয়।

নীচের লিঙ্কগুলি দেখুন:

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

@ রিয়েলম্যাগ 77 এর বিল্ডিং। এটি সমস্ত ধরণের বৈশিষ্ট্যগুলি ফিল্টার করতে সক্ষম হয়ে অটোপটিমাইজ প্লাগইনটি উত্তোলন করবে তবে এটি ইনস্টল করা এবং সক্রিয় না হলে ভাঙবে না। ফলব্যাকটি দুর্দান্ত কাজ করে তবে প্লাগিনগুলির মাধ্যমে লোড হওয়া সেই স্ক্রিপ্টগুলি এবং স্টাইলশিটগুলি ফিল্টার করা যাবে না। এগুলি কীভাবে অন্য ফিল্টার করা যায় তা আমি জানি না তবে অটোপটিমাইজ অংশটি ব্যবহার করার মাধ্যমে।

/* ==========================================
   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

আপনি যদি ডাব্লুপি দ্রুততম ক্যাশে এর সাথে অভিজ্ঞ হয়ে থাকেন তবে আপনি প্লাগইন পিএইচপি স্ক্রিপ্টে ম্যানুয়ালি টাইপ অ্যাট্রিবিউট মুছতে পারেন, এটি অন্যান্য প্লাগইনগুলির সাথেও কাজ করা উচিত, তবে আমি ফাইলগুলি জানি না যেখানে তারা টাইপ বৈশিষ্ট্য যুক্ত করছে। ডব্লিউপি দ্রুততম ক্যাশের জন্য আপনার ডাব্লুপি-কনটেন্ট / প্লাগইনস / ডাব্লুপি-দ্রুততম-ক্যাশে / ইনক ফোল্ডারে যেতে হবে এবং জেএস-ইউটিলিটিস.ফপি খুলতে হবে তারপরে পাঠ্য / জাভাস্ক্রিপ্ট অনুসন্ধান করতে হবে এবং এটিকে বৈশিষ্ট্য সহ মুছে ফেলতে হবে। আমার কাছে ডাব্লু 3 ভ্যালিডেটরের উপর এই সতর্কতা ছিল এবং এটি সেভাবে ঠিক করে দেওয়া হয়েছিল, এছাড়াও সচেতন হন যে আপনি যখন প্লাগইন আপডেট করবেন তখন যে পরিবর্তনটি আবার ফিরিয়ে দেওয়া যেতে পারে, প্লাগইন আপডেট অক্ষম করতে আপনি ডাব্লুপিএফস্টেস্টক্যাচি সম্পাদনা করতে এবং প্লাগইন সংস্করণটিকে এই জাতীয় 10.0.8.7.7 এ পরিবর্তন করতে পারবেন aware


-1

আপনি 2 টি পদক্ষেপে আপনার সাইটের হিসাবে এইচটিএমএল কোডটি অনুকূল করতে পারেন:

  • এই প্লাগইনটি ইনস্টল করুন: https://wordpress.org/plugins/autoptimize/
  • প্লাগিন অপশনগুলিতে সক্ষম করুন 'এইচটিএমএল কোডটি অপ্টিমাইজ করবেন?'
  • আপনার বর্তমান ওয়ার্ডপ্রেস থিমের ফাংশন.এফপিতে পরবর্তী কোড প্রয়োগ করুন:

    add_filter ('অটোপ্টিমাইজ_এইচটিএমএল_ফেরন_মিনিফাই', ফাংশন ($ সামগ্রী)

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

    এবং শেষের দিকে স্ল্যাশ ছাড়াই আপনার সাইটের লিঙ্কে _ সাইট_url পরিবর্তন করতে ভুলবেন না


-1

লিঙ্ক এবং স্ক্রিপ্ট ট্যাগ থেকে প্রকারের বৈশিষ্ট্যগুলি সরাতে আপনি নীচের ফাংশনগুলি ব্যবহার করতে পারেন।

linkট্যাগগুলি থেকে টেক্সট = পাঠ্য / সিএসএস অপসারণের জন্য ফাংশন.এফপিতে নীচে ফাংশনটি আটকান

/ * স্টাইলশিট থেকে "'প্রকার = পাঠ্য / সিএসএস'" বৈশিষ্ট্যটি সরান * / /
ফাংশন wpse51581_hide_type ($ src) {
    str_replace ("টাইপ = 'টেক্সট / সিএসএস'", '', $ এসসিআর) প্রত্যাবর্তন করুন;
}
add_filter ('স্টাইল_লোডার_ট্যাগ', 'wpse51581_hide_type');

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

= 'পাঠ্য / জাভাস্ক্রিপ্ট' প্রকারটি অপসারণের জন্য ফাংশন.এফপিতে নীচে ফাংশনটি আটকান script

// * স্ক্রিপ্ট এবং শৈলী থেকে টাইপ ট্যাগ সরান
অ্যাড_ফিল্টার ('স্ক্রিপ্ট_লোডার_ট্যাগ', 'কোডহীন_মরোভ_প্রকার_আত্র', 10, 2);
ফাংশন কোডবিহীন_মেনো_প্রকার_আত্র ($ ট্যাগ, $ হ্যান্ডেল)
    প্রিগ_রেপ্লেস ফিরে ("/ টাইপ = ['\"]] পাঠ্য \ / (জাভাস্ক্রিপ্ট | সিএসএস) [' \ "] /", '',; ট্যাগ);
}

উত্তরটি সঠিক তবে এখনও কেউ নেতিবাচক ভোট দিয়েছেন
ইনফোকোনিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.