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 );
trongwp-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.