Trang chủ / Blog / Mẹo WordPress: 15 Đoạn Code Hữu Ích Cho functions.php
Mẹo & Thủ thuật

Mẹo WordPress: 15 Đoạn Code Hữu Ích Cho functions.php

File functions.php là nơi bạn có thể thêm vô số tính năng vào WordPress mà không cần cài thêm plugin. Dưới đây là 15 đoạn code hữu ích nhất mà tôi dùng trong mọi dự án.

⚠️ Lưu ý: Luôn backup trước khi chỉnh sửa functions.php. Tốt nhất là dùng Child Theme để tránh mất code khi cập nhật theme.

1. Tắt Gutenberg, dùng Classic Editor

add_filter('use_block_editor_for_post', '__return_false');

2. Tăng giới hạn upload file

@ini_set('upload_max_size', '64M');
@ini_set('post_max_size', '64M');
@ini_set('max_execution_time', '300');

3. Xóa version WordPress khỏi HTML

Ẩn phiên bản WP để hacker khó xác định lỗ hổng:

remove_action('wp_head', 'wp_generator');

4. Thêm Google Analytics không cần plugin

function add_google_analytics() { ?>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-XXXXXXXXXX');
</script>

5. Tùy chỉnh thông báo đăng nhập thất bại

function custom_login_error() {
    return 'Thông tin đăng nhập không chính xác. Vui lòng thử lại.';
}
add_filter('login_errors', 'custom_login_error');

6. Redirect sau khi đăng nhập

function custom_login_redirect($redirect_to, $request, $user) {
    if (isset($user->roles) && is_array($user->roles)) {
        if (in_array('administrator', $user->roles)) {
            return admin_url();
        } else {
            return home_url('/tai-khoan/');
        }
    }
    return $redirect_to;
}
add_filter('login_redirect', 'custom_login_redirect', 10, 3);

7. Thêm excerpt cho Pages

add_post_type_support('page', 'excerpt');

8. Xóa emoji scripts (tăng tốc)

remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action('admin_print_scripts', 'print_emoji_detection_script');
remove_action('admin_print_styles', 'print_emoji_styles');

9. Tắt RSS feed nếu không cần

function disable_feeds() {
    wp_die(__('Không có feed nào ở đây!'));
}
add_action('do_feed', 'disable_feeds', 1);
add_action('do_feed_rdf', 'disable_feeds', 1);
add_action('do_feed_rss', 'disable_feeds', 1);
add_action('do_feed_rss2', 'disable_feeds', 1);
add_action('do_feed_atom', 'disable_feeds', 1);

10. Tự động thêm rel="noopener" cho link ngoài

function add_noopener_links($content) {
    return str_replace(
        'target="_blank"',
        'target="_blank" rel="noopener noreferrer"',
        $content
    );
}
add_filter('the_content', 'add_noopener_links');

11. Hiển thị thời gian đọc ước tính

function reading_time() {
    $content = get_post_field('post_content', get_the_ID());
    $word_count = str_word_count(strip_tags($content));
    $minutes = ceil($word_count / 200);
    return $minutes . ' phút đọc';
}
// Dùng trong template: echo reading_time();

12. Giới hạn số revision

define('WP_POST_REVISIONS', 5);

13. Thêm class "active" vào menu item hiện tại

function add_active_class($classes, $item) {
    if (in_array('current-menu-item', $classes)) {
        $classes[] = 'active';
    }
    return $classes;
}
add_filter('nav_menu_css_class', 'add_active_class', 10, 2);

14. Tùy chỉnh footer trong WP Admin

add_filter('admin_footer_text', function() {
    return 'Được xây dựng với ❤️ bởi WPVault';
});

15. Thêm nút quay lại đầu trang

function back_to_top() { ?>
<button id="back-to-top" onclick="window.scrollTo({top:0,behavior:'smooth'})"
  style="display:none;position:fixed;bottom:30px;right:30px;background:#C9A84C;
  color:#fff;border:none;border-radius:50%;width:44px;height:44px;
  font-size:20px;cursor:pointer;z-index:999">↑</button>
<script>
window.addEventListener('scroll', function() {
  var btn = document.getElementById('back-to-top');
  btn.style.display = window.scrollY > 300 ? 'block' : 'none';
});
</script>
n
nguyenluan.dev@gmail.com
Tác giả tại Nguyễn Ngọc Minh Luân. Chia sẻ kiến thức WordPress và kinh nghiệm thực chiến.