Code snippets hữu ích WordPress

20 giờ ago, Hướng dẫn người mới, Views
Code snippets hữu ích WordPress

Giới thiệu về Code Snippets trong WordPress

WordPress, một nền tảng quản lý nội dung (CMS) phổ biến, cho phép người dùng tùy chỉnh và mở rộng chức năng của trang web của họ thông qua nhiều phương tiện, bao gồm themes, plugins và code snippets. Code snippets là những đoạn mã nhỏ có thể được thêm vào trang web WordPress của bạn để thay đổi hoặc cải thiện các chức năng hiện có mà không cần chỉnh sửa trực tiếp các file theme gốc. Việc sử dụng code snippets có thể giúp bạn tùy chỉnh trang web một cách nhanh chóng và hiệu quả, đồng thời giảm thiểu rủi ro gây ra bởi việc chỉnh sửa trực tiếp các file theme.

Việc sử dụng plugin “Code Snippets” là một cách an toàn và dễ dàng để quản lý các code snippets của bạn. Plugin này cho phép bạn thêm, chỉnh sửa, và kích hoạt hoặc vô hiệu hóa các đoạn mã một cách dễ dàng từ giao diện quản trị WordPress mà không cần phải chỉnh sửa file functions.php của theme.

Các Code Snippets Cơ Bản và Hữu Ích

Thay đổi Logo WordPress Mặc Định trên Trang Đăng Nhập

Bạn có thể thay đổi logo WordPress mặc định trên trang đăng nhập bằng một đoạn code snippet đơn giản. Điều này giúp tạo sự nhất quán thương hiệu và làm cho trang đăng nhập trông chuyên nghiệp hơn.


add_action( 'login_enqueue_scripts', 'my_login_logo' );
function my_login_logo() { ?>
    
<?php }

add_filter( 'login_headerurl', 'my_login_logo_url' );
function my_login_logo_url() {
    return home_url();
}

add_filter( 'login_headertext', 'my_login_logo_url_title' );
function my_login_logo_url_title() {
    return get_bloginfo( 'name' );
}

Nhớ thay thế your-logo.png bằng đường dẫn thực tế đến hình ảnh logo của bạn.

Loại Bỏ Số Phiên Bản WordPress

Việc loại bỏ số phiên bản WordPress khỏi header và feed giúp bảo vệ trang web của bạn khỏi các lỗ hổng bảo mật tiềm ẩn. Mặc dù không phải là một giải pháp hoàn toàn, nhưng nó có thể làm cho việc tấn công trang web của bạn trở nên khó khăn hơn.


function remove_version() {
    return '';
}
add_filter('the_generator', 'remove_version');

function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');
remove_action('wp_head', 'wp_generator');

Thay Đổi Footer Text trong Trang Quản Trị WordPress

Bạn có thể tùy chỉnh footer text trong trang quản trị WordPress để thêm thông tin về thương hiệu của bạn hoặc cung cấp liên kết đến tài liệu hỗ trợ.


function custom_admin_footer() {
    echo 'Cảm ơn bạn đã sử dụng WordPress. Được thiết kế và phát triển bởi [Tên của bạn hoặc công ty của bạn]';
}
add_filter('admin_footer_text', 'custom_admin_footer');

Vô hiệu hóa Auto Updates cho Plugins và Themes

Việc tự động cập nhật plugin và theme đôi khi có thể gây ra sự cố tương thích. Vô hiệu hóa chúng có thể giúp bạn kiểm soát tốt hơn quá trình cập nhật, nhưng hãy đảm bảo cập nhật thủ công thường xuyên để duy trì bảo mật.


add_filter( 'auto_update_plugin', '__return_false' );
add_filter( 'auto_update_theme', '__return_false' );

Code Snippets Nâng Cao để Tùy Chỉnh WordPress

Thêm Custom Post Types

Custom Post Types (CPTs) cho phép bạn tạo các loại nội dung khác ngoài bài viết và trang mặc định của WordPress. Điều này rất hữu ích cho việc quản lý các loại nội dung đặc biệt như sản phẩm, dự án, hoặc đánh giá.


function create_book_posttype() {

    register_post_type( 'book',
        array(
            'labels' => array(
                'name' => __( 'Books' ),
                'singular_name' => __( 'Book' )
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'books'),
            'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'comments' ),
        )
    );
}
add_action( 'init', 'create_book_posttype' );

Thêm Custom Taxonomies

Custom Taxonomies cho phép bạn nhóm và phân loại Custom Post Types, tương tự như cách các danh mục và thẻ hoạt động cho bài viết. Chúng giúp bạn tổ chức nội dung một cách logic và tạo điều kiện cho việc điều hướng và tìm kiếm.


function create_genre_taxonomy() {

    register_taxonomy(
        'genre',
        'book',
        array(
            'label' => __( 'Genre' ),
            'rewrite' => array( 'slug' => 'genre' ),
            'hierarchical' => true,
        )
    );
}
add_action( 'init', 'create_genre_taxonomy', 0 );

Chặn truy cập vào trang wp-admin cho người dùng không đăng nhập

Đây là một biện pháp bảo mật cơ bản, ngăn chặn những người chưa đăng nhập truy cập vào khu vực quản trị của trang web.


function blockWpAdmin(){
  if ( is_admin() && ! current_user_can( 'administrator' ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
    wp_redirect( home_url() );
    exit;
  }
}
add_action( 'init', 'blockWpAdmin' );

Các Code Snippets liên quan đến Performance

Vô hiệu hóa Emojis của WordPress

Nếu bạn không sử dụng emojis, việc vô hiệu hóa chúng có thể giúp giảm số lượng HTTP requests và cải thiện hiệu suất trang web.


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_filter('tiny_mce_plugins', 'disable_emojis_tinymce');
 add_filter('wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2);
}
add_action('init', 'disable_emojis');

function disable_emojis_tinymce($plugins) {
 if (is_array($plugins)) {
  return array_diff($plugins, array('wpemoji'));
 } else {
  return array();
 }
}

function disable_emojis_remove_dns_prefetch($urls, $relation_type) {
 if ('dns-prefetch' == $relation_type) {
  $emoji_svg_url_bit = 'https://s.w.org/images/core/emoji/';
  foreach ($urls as $key => $url) {
   if (strpos($url, $emoji_svg_url_bit) !== false) {
    unset($urls[$key]);
   }
  }
 }
 return $urls;
}

Vô hiệu hóa Heartbeat API

Heartbeat API của WordPress định kỳ gửi các yêu cầu AJAX đến server, có thể gây ra tải không cần thiết. Vô hiệu hóa hoặc điều chỉnh tần suất của nó có thể cải thiện hiệu suất, đặc biệt là trên các trang web lớn.


add_action( 'init', 'stop_heartbeat', 1 );
function stop_heartbeat() {
wp_deregister_script('heartbeat');
}

Hoặc điều chỉnh tần suất:


add_filter( 'heartbeat_settings', 'adjust_heartbeat_frequency' );
function adjust_heartbeat_frequency( $settings ) {
  $settings['interval'] = 60; // Đặt tần suất thành 60 giây
  return $settings;
}

Lazy load hình ảnh

Lazy load giúp tải trang nhanh hơn bằng cách chỉ tải hình ảnh khi chúng hiển thị trên màn hình của người dùng. Điều này giảm tải ban đầu và cải thiện trải nghiệm người dùng.


function lazyload_images( $content ) {
  $content = mb_convert_encoding($content, 'HTML-ENTITIES', "UTF-8");
  $document = new DOMDocument();
  libxml_use_internal_errors(true); //Suppress errors.
  $document->loadHTML(utf8_decode($content));
  libxml_clear_errors();

  $imgs = $document->getElementsByTagName('img');

  foreach ($imgs as $img) {
  $src = $img->getAttribute('src');
  $alt = $img->getAttribute('alt');

  $img->removeAttribute('src');

  $img->setAttribute('data-src', $src);
  $img->setAttribute('alt', $alt);
  $img->setAttribute('class', $img->getAttribute('class') . ' lazyload');
  }

  $content = $document->saveHTML();
  return $content;
}
add_filter( 'the_content', 'lazyload_images' );

Bạn cần thêm thư viện Lazyload vào website. Ví dụ: jsDelivr CDN:


<script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload@17.8.3/dist/lazyload.min.js"></script>
<script>
  var lazyLoadInstance = new LazyLoad({
    elements_selector: ".lazyload"
  });
</script>

Những Lưu Ý Quan Trọng Khi Sử Dụng Code Snippets

  • Luôn sao lưu trang web của bạn trước khi thêm bất kỳ code snippet nào.
  • Kiểm tra code snippets cẩn thận trước khi triển khai để đảm bảo chúng hoạt động như mong đợi.
  • Sử dụng plugin “Code Snippets” để quản lý các đoạn mã của bạn một cách an toàn và dễ dàng.
  • Tránh chỉnh sửa trực tiếp các file theme gốc nếu không cần thiết. Sử dụng code snippets hoặc child themes thay thế.
  • Tìm hiểu về cú pháp PHP và WordPress API để hiểu rõ hơn về code snippets bạn đang sử dụng.
  • Luôn cập nhật WordPress, themes và plugins của bạn lên phiên bản mới nhất để đảm bảo bảo mật và hiệu suất.
  • Sử dụng debug mode (define( 'WP_DEBUG', true ); trong wp-config.php) để tìm lỗi khi thêm code snippets.
  • Nếu gặp sự cố, hãy vô hiệu hóa snippet để xác định xem nó có phải là nguyên nhân gây ra vấn đề hay không.
  • Tham khảo tài liệu chính thức của WordPress và các diễn đàn cộng đồng để được hỗ trợ.

Kết luận

Code snippets là một công cụ mạnh mẽ để tùy chỉnh và mở rộng chức năng của trang web WordPress của bạn. Bằng cách sử dụng chúng một cách thông minh và cẩn thận, bạn có thể tạo ra một trang web độc đáo và hiệu quả mà không cần phải trở thành một nhà phát triển web chuyên nghiệp. Hy vọng rằng bài viết này đã cung cấp cho bạn một số ý tưởng về cách sử dụng code snippets để cải thiện trang web WordPress của bạn.