File functions.php trong WordPress nằm ở đâu và có chức năng gì?

Bắt buộc khi tạo theme WordPress sẽ có các file bắt buộc là: style.css, functions.php, index.php tuỳ theo cấu trúc mỗi theme nhưng đây là 3 file bắt buộc phải có.

Ngoài ra cấu trúc theme WordPress còn có các file với chức năng tương ứng như list dưới đây.

  • index.php – Tệp mẫu chính hiển thị nội dung trang web của bạn.
  • style.css – File khai báo theme như (tên theme, mô tả về theme và 1 số style css nếu người viết theme muốn thêm vào)
  • header.php – Thông tin phần header của website
  • footer.php – Thông tin phần footer của website
  • single.php – Trang chi tiết bài viết – blog post
  • page.php – Trang tĩnh
  • archive.php – Hiển thị danh sách các bài đăng từ category hoặc tag
  • search.php – Hiển thị danh sách các bài viết khi search
  • 404.php – Hiển thị thông tin nếu web bị lỗi không tìm thấy
  • functions.php – File chứa tất cả các chức năng và tính năng tùy chỉnh của theme

File functions.php nằm ở đâu?

File functions.php là 1 file quan trọng trong theme và bạn dễ dàng tìm thấy nó theo 1 trong 2 cách sau.

Cách 1: Đăng nhập vào website WordPress của bạn, vào phần Dashboard wp-admin bạn rê chuột vào phần Giao diện > Theme File Editor

Khi click vào Theme File Editor bạn sẽ thấy bên tay phải sẽ có 1 file functions.php đó chính là file functions.php bạn cần tìm đấy.

Cách 2: Đăng nhập vào tài khoản FTP hoặc Hosting > Vào thư mục chứa website và đi theo đường dẫn.

/home/vutruso.com/public_html/wp-content/themes/ten-theme-ban-dang-dung

Nhớ thay vutruso.com thành tên miền của bạn, và bạn cũng lưu ý tuỳ theo panel lý website trên hosting mà sẽ có vị trí lưu trữ website khác nhau.

Theo đường dẫn ở trên bạn sẽ dễ dàng thấy được file functions.php

Bạn dễ dàng tìm được file functions.php theo 1 trong 2 cách trên, nếu bạn muốn thêm tính năng mới cho website thì có thể thêm code vào file functions.php và lưu lại.

Code thông dụng trong file chức năng – functions.php WordPress

Khai báo css và js cho theme

// Register Style
function vutruso_theme_assets() {

	wp_register_style( 'main_style', 'assets/css/styles.css', false, false );
	wp_enqueue_style( 'main_style' );

	wp_register_style( 'bootstrap-css', 'http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css', false, false );
	wp_enqueue_style( 'bootstrap-css' );

}
add_action( 'wp_enqueue_scripts', 'theme_assets' );

2. Thêm menu cho WordPress

// Register Navigation Menus
function vutruso_custom_navigation_menus() {

	$locations = array(
		'main-menu' => __( 'Menu chinh', 'text_domain' ),
	);
	register_nav_menus( $locations );

}
add_action( 'init', 'custom_navigation_menus' );

3. Code thông báo bảo trì

function vts_wp_maintenance_mode(){
    if(!current_user_can('edit_themes') || !is_user_logged_in()){
         wp_die('<h1 style="color:red">Website đang được bảo trì định kỳ</h1><br />
               Vui lòng quay lại trong ít phút nữa!');
    }
}
add_action('get_header', 'vts_wp_maintenance_mode');

4. Custom size ảnh cho WordPress

add_theme_support( 'post-thumbnails' );
add_image_size( 'supermarket-category-image', 380, 220, true );
add_image_size( 'supermarket-grid-product-image', 400, 480, true );

5. Làm sạch file ảnh khi upload

Nếu tên file ảnh chứa các ký tự đặc biệt sẽ bị loại bỏ, vd: Đây là file ảnh.png sẽ được đổi thành day-la-file-anh.png

/**
 * Add filters to sanitize filenames.
 */
function vutruso_sanitize_filenames( $filename ) {
    $sanitized_filename = sanitize_file_name( $filename );
    return $sanitized_filename;
}
add_filter( 'sanitize_file_name', 'vutruso_sanitize_filenames', 10 );

/**
 * Add filters to sanitize filenames for all uploads.
 */
function vutruso_sanitize_all_filenames( $metadata, $id ) {
    if ( isset( $metadata['file'] ) ) {
        $metadata['file'] = vutruso_sanitize_filenames( $metadata['file'] );
    }
    return $metadata;
}
add_filter( 'wp_generate_attachment_metadata', 'vutruso_sanitize_all_filenames', 10, 2 );

6. Xóa bỏ code svg trong thẻ body từ WordPress 5.9

Xóa bỏ code svg trong thẻ body từ WordPress 5.9 thì bạn có thể xem chi tiết

7. Tắt XML PRC

Mặc định XML PRC bật, nhưng bạn nên tắt tính năng này đi vì nó không giúp ích mà còn gây hại cho website

add_filter('xmlrpc_enabled', '__return_false');

Function bật classic widget thay cho block widget

/* Classic widget
*===============================================================*/
add_filter( 'gutenberg_use_widgets_block_editor', '__return_false' );
add_filter( 'use_widgets_block_editor', '__return_false' );

Bật Classic Editor thay cho Gutenberg

/* Classic editor
*===============================================================*/
add_filter('use_block_editor_for_post', '__return_false', 10);
add_filter( 'use_widgets_blog_editor', '__return_false' );
add_action( 'wp_enqueue_scripts', function() {
    // Remove CSS on the front end.
    wp_dequeue_style( 'wp-block-library' );

    // Remove Gutenberg theme.
    wp_dequeue_style( 'wp-block-library-theme' );

    // Remove inline global CSS on the front end.
    wp_dequeue_style( 'global-styles' );
}, 20 );

Ở trên là 1 số hàm thông dụng khi tạo theme WordPress, nếu bạn muốn thêm code các tính năng khác bạn có thể truy cập để xem CODE SNIPPETS khác.

Xin cảm ơn.

daotiendung

Tiến Dũng Đào chuyên quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress với hơn 5 năm phát triển theme và plugin. Sở thích của anh là đọc, viết blog, đi du lịch, tập võ và chia sẻ các kiến thức cho mọi người.

Bài viết liên quan