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é!
-
-
-
-
-
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' );
-
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 );
-
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'); } } }
-
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' );
-
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');
-
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();
-
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>'; }
-
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');
-
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 );
-
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');
-
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>
-
Cách tìm file gây ảnh hưởng load lâu
- 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
- 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; }
- Tim nguyên nhân
- Ẩ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; }
-
- 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 } );
- 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é,