Home / Wordpress / các đoạn code trong function hay cần sử dụng

các đoạn code trong function hay cần sử dụng

code trong function hay
code trong function hay

Các đoạn code trong function hay cần sử dụng

Hello các bạn, Sau nhiều năm hành nghề, và làm trong website cũng có note lại các đoạn code hay function để giúp website tốt hơn,

Không phải tối ưu 100% nhưng cũng 1 phần nào đó cho anh em tìm hiểu và sử dụng khi cần thiết. Anh em có gì like face và ủng hộ chúng tôi nhé. congdongblog.com nhé

Các bạn hãy các đoạn code trong function hay này vào trong theme của bạn file function.php nhé!

          1. CODE nén js

            function remove_head_scripts() { 
            remove_action('wp_head', 'wp_print_scripts'); 
            remove_action('wp_head', 'wp_print_head_scripts', 9); 
            remove_action('wp_head', 'wp_enqueue_scripts', 1);
            add_action('wp_footer', 'wp_print_scripts', 5);
            add_action('wp_footer', 'wp_enqueue_scripts', 5);
            add_action('wp_footer', 'wp_print_head_scripts', 5); 
            } 
            add_action( 'wp_enqueue_scripts', 'remove_head_scripts' );
          2. Remove Query strings from Static Resources

             function remove_cssjs_ver( $src ) {
            	if( strpos( $src, '?ver=' ) )
            	$src = remove_query_arg( 'ver', $src );
            	return $src;
            }
            add_filter( 'style_loader_src', 'remove_cssjs_ver', 10, 2 );
            add_filter( 'script_loader_src', 'remove_cssjs_ver', 10, 2 );
            
          3. Conditional load WooCommerce’s JS and CSS

            function conditionally_load_woc_js_css(){
            if( function_exists( 'is_woocommerce' ) ){
                    # Only load CSS and JS on Woocommerce pages   
            	if(! is_woocommerce() && ! is_cart() && ! is_checkout() ) { 		
            		## Dequeue scripts. 
            		wp_dequeue_script('wc-cart-fragments');
            		## Dequeue styles.	
            		wp_dequeue_style('woocommerce-general'); 
            		wp_dequeue_style('woocommerce-layout'); 
            		wp_dequeue_style('woocommerce-smallscreen'); 
            		}
            	}	
            }
            
          4. Disable the emoji’s

            function disable_emojis() {
            remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
            remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
            remove_action( 'wp_print_styles', 'print_emoji_styles' );
            remove_action( 'admin_print_styles', 'print_emoji_styles' );
            remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
            remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
            remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
            }
            add_action( 'init', 'disable_emojis' );
          5. Code làm sạch header của WordPress

            remove_action('wp_head', 'wp_generator');
            remove_action('wp_head', 'rsd_link');
            remove_action('wp_head', 'wlwmanifest_link');
            remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
            remove_action('wp_head', 'feed_links', 2);
            remove_action('wp_head', 'feed_links_extra', 3);
            remove_action('wp_head', 'start_post_rel_link', 10, 0);
            remove_action('wp_head', 'parent_post_rel_link', 10, 0);
            remove_action('wp_head', 'index_rel_link');
            remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0);
            remove_action('wp_head', 'adjacent_posts_rel_link_wp_head, 10, 0');
          6. Code lưu ảnh về host khi coppy nguồn khác

            class Auto_Save_Images{
                function __construct(){     
                    add_filter( 'content_save_pre',array($this,'post_save_images') ); 
                }
                function post_save_images( $content ){
                    if( ($_POST['save'] || $_POST['publish'] )){
                        set_time_limit(240);
                        global $post;
                        $post_id=$post->ID;
                        $preg=preg_match_all('/<img.*?src="(.*?)"/',stripslashes($content),$matches);
                        if($preg){
                            foreach($matches[1] as $image_url){
                                if(empty($image_url)) continue;
                                $pos=strpos($image_url,$_SERVER['HTTP_HOST']);
                                if($pos===false){
                                   $res=$this->save_images($image_url,$post_id);
                                    $replace=$res['url'];
                                   $content=str_replace($image_url,$replace,$content);
                                }
                            }
                        }
                    }
                    remove_filter( 'content_save_pre', array( $this, 'post_save_images' ) );
                    return $content;
                }    
                function save_images($image_url,$post_id){
                    $file=file_get_contents($image_url);
                    $post = get_post($post_id);
                    $posttitle = $post->post_title;
                    $postname = sanitize_title($posttitle);
                    $im_name = "$postname-$post_id.jpg";
                    $res=wp_upload_bits($im_name,'',$file);
                    $this->insert_attachment($res['file'],$post_id);
                    return $res;
               }
              
                function insert_attachment($file,$id){
                    $dirs=wp_upload_dir();
                    $filetype=wp_check_filetype($file);
                    $attachment=array(
                        'guid'=>$dirs['baseurl'].'/'._wp_relative_upload_path($file),
                        'post_mime_type'=>$filetype['type'],
                        'post_title'=>preg_replace('/\.[^.]+$/','',basename($file)),
                        'post_content'=>'',
                        'post_status'=>'inherit'
                    );
                    $attach_id=wp_insert_attachment($attachment,$file,$id);
                    $attach_data=wp_generate_attachment_metadata($attach_id,$file);
                    wp_update_attachment_metadata($attach_id,$attach_data);
                    return $attach_id;
               }
            }
            new Auto_Save_Images();
          7. Code hiện số hàng đã bán được ở danh mục sản phẩm

            add_action( 'woocommerce_shop_loop_item_title', 'wc_product_sold_count', 11 );
            function wc_product_sold_count() {
            global $product;
            $units_sold = get_post_meta( $product->id, 'total_sales', true );
            echo '<p>' . sprintf( __( 'đã bán: %s', 'woocommerce' ), $units_sold ) . '</p>';
            }
          8. Code chặn update plugin hay theme để website chạy ổn định trên 1 bản (không ưu tiên nhé)

            function remove_core_updates(){
                global $wp_version;return(object) array('last_checked'=> time(),'version_checked'=> $wp_version,);
            }
            add_filter('pre_site_transient_update_core','remove_core_updates');
            add_filter('pre_site_transient_update_plugins','remove_core_updates');
            add_filter('pre_site_transient_update_themes','remove_core_updates');
          9. Code loại bỏ css

            /**
             * Loại bỏ tài nguyên chặn hiển thị CSS
             */
             function add_rel_preload($html, $handle, $href, $media) {
                
                if (is_admin())
                    return $html;
            
                 $html = <<<EOT
            <link rel='preload' as='style' onload="this.onload=null;this.rel='stylesheet'" id='$handle' href='$href' type='text/css' media='all' />
            EOT;
                return $html;
            }
            add_filter( 'style_loader_tag', 'add_rel_preload', 10, 4 );
            
            //* Loại bỏ CSS Gutenberg stylesheet in front
            function wps_deregister_styles() {
                wp_dequeue_style( 'wp-block-library' );
                wp_dequeue_style( 'wp-block-library-theme' );
            }
            add_action( 'wp_print_styles', 'wps_deregister_styles', 100 );
          10. Code chuyển các  javascripts xuống footer để tránh gây load lâu

            //* Move from head to the Footer
            function footer_enqueue_scripts() {
             remove_action('wp_head', 'wp_print_scripts');
             remove_action('wp_head', 'wp_print_head_scripts', 9);
             
             add_action('wp_footer', 'wp_print_scripts', 5);
             add_action('wp_footer', 'wp_print_head_scripts', 5);
             
            }
            add_action('after_setup_theme', 'footer_enqueue_scripts');
          11. Khắc phục lỗi font google

            <script type="text/javascript">
             WebFontConfig = {
             google: { families: [ 'Open+Sans:400,400italic,700,600' ] }// thay thế font chữ này bằng fonts bạn đang sử dụng
             };
             (function() {
             var wf = document.createElement('script');
             wf.src = 'https://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
             wf.type = 'text/javascript';
             wf.async = 'true';
             var s = document.getElementsByTagName('script')[0];
             s.parentNode.insertBefore(wf, s);
             })(); </script>
          12. Cách tìm file gây ảnh hưởng load lâu

            1. Tim nguyên nhân
              add_action( 'wp_print_scripts', 'wsds_detect_enqueued_scripts' );
              function wsds_detect_enqueued_scripts() {
                  global $wp_scripts;
                  foreach( $wp_scripts->queue as $handle ) :
                      echo $handle . ' | ';
                  endforeach;
              }

              add ở function xong bạn ra trang chủ, ctrl+f5 xuống cuối trang, xem mục nào gây chậm, coppy nó rồi xóa function trên đi

            2. khắc phục lỗi
              /**
               * bạn thay các đoạn file gây chậm web bằng đoạn bạn coppy ở bước 1, xong lưu lại
               */
              add_filter( 'script_loader_tag', 'wsds_defer_scripts', 10, 3 );
              function wsds_defer_scripts( $tag, $handle, $src ) {
               
                  // The handles of the enqueued scripts we want to defer
                  $defer_scripts = array( 
                      'admin-bar',
                      'crayon_js',
                      'contact-form-7',
                      'pwhois-ajax-request',
                      'ea-admin-bar',
                      'eael-front-end',
                      'imagesloaded',
                      'magnific-popup',
                      'oceanwp-lightbox',
                      'jquery-easing',
                      'jquery-mousewheel',
                      'eio-lazy-load',
                      'elementor-assets',
                      'wp-includes-js',
                      
                  );
               
                  if ( in_array( $handle, $defer_scripts ) ) {
                      return '<script data-no-minify="1" src="' . $src . '" defer="defer" type="text/javascript"></script>' . "\n";
                  }
                   
                  return $tag;
              }
              
              
          13. Ẩn các chức năng không cần thiết
      //Ẩn các panel không cần thiết
       add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
      
      function my_custom_dashboard_widgets()
      {
           global $wp_meta_boxes;
      
           // Right Now - Comments, Posts, Pages at a glance
           unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
      
           // Recent Comments
           unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
      
           // Incoming Links
           unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
      
           // Plugins - Popular, New and Recently updated WordPress Plugins
           unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
      
           // WordPress Development Blog Feed
           unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
      
           // Other WordPress News Feed
           unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
      
           // Quick Press Form
           unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
      
           // Recent Drafts List
           unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
      }
      
      
      
      //Ẩn Welcome Panel:
      add_action( 'load-index.php', 'hide_welcome_panel' );
      
      function hide_welcome_panel() {
          $user_id = get_current_user_id();
      
          if ( 1 == get_user_meta( $user_id, 'show_welcome_panel', true ) )
              update_user_meta( $user_id, 'show_welcome_panel', 0 );
      }
      
      //Remove WooCommerce's annoying update message
      remove_action( 'admin_notices', 'woothemes_updater_notice' );
      
      // REMOVE THE WORDPRESS UPDATE NOTIFICATION FOR ALL USERS EXCEPT ADMIN
         global $user_login;
         get_currentuserinfo();
         if (!current_user_can('update_plugins'))
         {
              // checks to see if current user can update plugins
                 add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
                 add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
         }
      
      //* Add stock status to archive pages
      add_filter( 'woocommerce_get_availability', 'custom_override_get_availability', 1, 2);
       
      // The hook in function $availability is passed via the filter!
      function custom_override_get_availability( $availability, $_product ) {
      if ( $_product->is_in_stock() ) $availability['availability'] = __('Còn hàng', 'woocommerce');
      return $availability;
      }
    1. CODE chống giật khi BUX
      // chống giật khi BUX
      add_action( 'admin_head', function () {
      	?>
      	<style type="text/css">
      		.iframe-frame {
      			box-shadow: unset !important;
      		}
      	</style>
      	<?php
      } );
    2. Code chuyển trình soạn thảo wp mới về phiên bản cũ
      add_filter( 'use_block_editor_for_post', '__return_false' );

 

Các bạn có gì thắc mắc cứ để lại comment bên dưới nhé, website mình luôn chia sẽ cái hay cho các bạn cùng đọc cùng xem nhé, thank you các bạn nhiều

Nhớ like ủng hộ congdongblog.com chúng tôi nhé,

About admin

congdongblog.com và congdongshop.com là một nhé mọi người, trang website đều do admin là Nguyễn Trung Thông sở hữu và quản lý, với đam mê CNTT , trang này dùng để chia sẽ kinh nghiệm những gì mình có, những gì mình làm được lên đây cho mọi người cùng học nhé, có gì sai sót mọi người bỏ qua nhé

Bạn Chưa biết ?

Hướng Dẫn Khắc Phục Webstite Bị Hack Tiếng Nhật, Mã Độc, Redirect

Hướng Dẫn Khắc Phục Webstite Bị Hack Tiếng Nhật, Mã Độc, Redirect

ContentsCác đoạn code trong function hay cần sử dụngCODE nén jsRemove Query strings from Static …

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đánh giá facebook