Làm cho $ #!% Có thể cắm được

Đối xử tốt với trẻ em
Khi một chức năng mới xuất hiện trong WordPress và bạn muốn đảm bảo rằng chủ đề của mình vẫn hoạt động tốt trong phiên bản WP cũ hơn, bạn hãy kiểm tra xem chức năng đó có được hỗ trợ hay không trước khi xác định nó.

Nếu vì một số lý do không lường trước được mà bạn cần xây dựng và hỗ trợ một chủ đề chạy trên phiên bản WordPress cũ hơn 3.0 — tức là, trước khi tính năng Trình đơn điều hướng và chức năng đi kèm ra đời — trước khi sử dụng chức năng, bạn cần phải kết thúc nó trong trình bao bọc có điều kiện if . ví dụregister_nav_menus()( function_exists() )

 

if ( function_exists( 'register_nav_menus' ) ) {
  register_nav_menus(
    array(
      'main_menu'       => __( 'Main Menu', 'butter' ),
      'secondary_menu'  =>  __( 'Secondary Menu', 'butter' ),
    )
  );
}

Chỉ đề cập đến Khả năng tương thích ngược, bạn biết rằng trừ khi bạn phải - cả vì lợi ích của bạn và bảo mật của cài đặt WordPress - bạn thực sự nên nâng cấp lên phiên bản mới nhất thay vì hỗ trợ các phiên bản cũ.

Bây giờ, giả sử bạn đang xây dựng chủ đề mẹ mà các nhà phát triển hoặc người dùng khác có thể xây dựng chủ đề con. Hầu hết các chức năng của chủ đề của bạn có thể sẽ được xác định cụ thể trong các chức năng.functions.php

Trẻ em đến trước!

Bản chất của các chủ đề con là các hàm được khai báo bên trong sẽ được ưu tiên hơn các hàm được khai báo trong chủ đề mẹ mà chúng dựa vào.functions.php

Trong ví dụ trước, trước tiên, chúng tôi đã kiểm tra xem liệu chức năng này có thể sử dụng trong phiên bản WordPress hiện được cài đặt hay không.register_nav_menus()

Để cho phép bất kỳ chủ đề con nào sử dụng chủ đề của bạn xác định lại cùng một chức năng này, bạn phải kiểm tra xem nó KHÔNG tồn tại tức là chưa được xác định bởi chủ đề con, trước khi bạn khai báo nó trong .functions.php

Do đó, hàm sẽ trông như thế này:

if ( ! function_exists( 'register_nav_menus' ) ) {
  register_nav_menus(
    array(
      'main_menu'       => __( 'Main Menu', 'butter' ),
      'secondary_menu'  =>  __( 'Secondary Menu', 'butter' ),
    )
  );
}

Chú ý dấu “ “. Giờ đây, bất kỳ chủ đề con nào dựa vào điều này đều có thể ghi đè lên chức năng này nếu cần. !

Đương nhiên, bạn muốn làm điều này cho các chức năng do người dùng xác định hơn là các chức năng cốt lõi. ví dụ: nếu bạn xác định một hàm xuất ra danh sách những người đóng góp cho trang web của mình, thì tốt nhất là bạn nên làm cho hàm đó có thể cắm được trong trường hợp tồn tại một trường hợp sử dụng khác cho hàm được xử lý tốt hơn bằng cách ghi đè lên hàm gốc từ bên trong một chủ đề con.