Định nghĩa thừa kế trong php

Chủ đề con cho phép bạn thay đổi các khía cạnh nhỏ về giao diện của trang web nhưng vẫn giữ nguyên giao diện và chức năng của chủ đề. Để hiểu cách thức hoạt động của các chủ đề con, điều quan trọng đầu tiên là phải hiểu mối quan hệ giữa chủ đề gốc và chủ đề con

Chủ đề gốc là một chủ đề hoàn chỉnh bao gồm tất cả các tệp và nội dung mẫu WordPress cần thiết để chủ đề hoạt động. Tất cả các chủ đề – ngoại trừ chủ đề con – được coi là chủ đề gốc

Như đã chỉ ra trong phần tổng quan, chủ đề con kế thừa giao diện của chủ đề gốc và tất cả các chức năng của chủ đề đó, nhưng có thể được sử dụng để thực hiện các sửa đổi đối với bất kỳ phần nào của chủ đề. Bằng cách này, các tùy chỉnh được giữ tách biệt với các tệp của chủ đề gốc. Sử dụng chủ đề con cho phép bạn nâng cấp chủ đề gốc mà không ảnh hưởng đến các tùy chỉnh bạn đã thực hiện cho trang web của mình

chủ đề con

  • làm cho các sửa đổi của bạn di động và có thể nhân rộng;
  • giữ tùy chỉnh tách biệt với các chức năng chủ đề gốc;
  • cho phép các chủ đề gốc được cập nhật mà không phá hủy các sửa đổi của bạn;
  • cho phép bạn tận dụng nỗ lực và thử nghiệm đưa vào chủ đề gốc;
  • tiết kiệm thời gian phát triển vì bạn không tạo lại bánh xe;
  • là một cách tuyệt vời để bắt đầu tìm hiểu về phát triển chủ đề

Ghi chú. Nếu bạn đang thực hiện các tùy chỉnh mở rộng – ngoài các kiểu và một vài tệp chủ đề – thì việc tạo một chủ đề gốc có thể là một lựa chọn tốt hơn một chủ đề con. Tạo chủ đề gốc cho phép bạn tránh các sự cố với mã không dùng nữa trong tương lai. Điều này cần phải được quyết định trên cơ sở từng trường hợp

Đầu tiên, tạo một thư mục mới trong thư mục chủ đề của bạn, đặt tại

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
1

Thư mục cần một cái tên. Cách tốt nhất là đặt tên cho một chủ đề con giống với chủ đề gốc, nhưng thêm

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
2 vào cuối. Ví dụ: nếu bạn đang tạo một chủ đề con của
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
3, thì thư mục sẽ có tên là
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
4

Tiếp theo, bạn sẽ cần tạo một tệp biểu định kiểu có tên

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
5, tệp này sẽ chứa tất cả các quy tắc và khai báo CSS kiểm soát giao diện của chủ đề của bạn. Biểu định kiểu của bạn phải chứa nhận xét tiêu đề bắt buộc bên dưới ở đầu tệp. Điều này cho WordPress biết thông tin cơ bản về chủ đề, bao gồm cả thực tế rằng đó là một chủ đề con với một chủ đề cụ thể

/*
Theme Name:   Twenty Fifteen Child
Theme URI:    http://example.com/twenty-fifteen-child/
Description:  Twenty Fifteen Child Theme
Author:       John Doe
Author URI:   http://example.com
Template:     twentyfifteen
Version:      1.0.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Tags:         light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
Text Domain:  twentyfifteenchild
*/

Các thông tin sau đây là bắt buộc

  • Tên chủ đề – cần phải là duy nhất cho chủ đề của bạn
  • Mẫu – tên của thư mục chủ đề gốc. Chủ đề gốc trong ví dụ của chúng tôi là chủ đề Twenty Fifteen, vì vậy Mẫu sẽ là
    get( 'Version' ) // This only works if you have Version defined in the style header.
    	);
    }
    3. Bạn có thể đang làm việc với một chủ đề khác, vì vậy hãy điều chỉnh cho phù hợp

Thêm thông tin còn lại nếu có. Tệp chủ đề con được yêu cầu duy nhất là style. css, nhưng chức năng. php là cần thiết để liệt kê các kiểu chính xác (bên dưới)

Bước cuối cùng là liệt kê các biểu định kiểu chủ đề gốc và con, nếu cần

Ghi chú. Trước đây, phương pháp phổ biến là nhập biểu định kiểu chủ đề gốc bằng cách sử dụng

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
7 bên trong
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
5. Đây không còn là phương pháp được khuyến nghị nữa vì nó làm tăng thời gian tải biểu định kiểu. Ngoài ra, biểu định kiểu gốc có thể được tải hai lần

Cách lý tưởng để liệt kê các biểu định kiểu là để chủ đề gốc tải cả hai (của cha mẹ và con cái), nhưng không phải tất cả các chủ đề đều làm điều này. Do đó, bạn cần kiểm tra mã của chủ đề gốc để xem nó làm gì và lấy tên xử lý mà chủ đề gốc sử dụng. Tay cầm là tham số đầu tiên của

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
9

Có một số điều cần lưu ý

  • chủ đề con được tải trước chủ đề gốc
  • mọi thứ được nối với một hành động có mức độ ưu tiên (mặc định là 10) nhưng những hành động có cùng mức độ ưu tiên sẽ chạy theo thứ tự chúng được tải
  • đối với mỗi tay cầm, chỉ lệnh gọi đầu tiên tới
    get( 'Version' ) // This only works if you have Version defined in the style header.
    	);
    }
    9 là có liên quan (những lệnh gọi khác bị bỏ qua)
  • tham số phụ thuộc của
    get( 'Version' ) // This only works if you have Version defined in the style header.
    	);
    }
    9 ảnh hưởng đến thứ tự tải
  • không có số phiên bản, khách truy cập trang web sẽ nhận được bất kỳ thứ gì mà trình duyệt của họ đã lưu trong bộ nhớ cache, thay vì phiên bản mới
  • sử dụng một chức năng để lấy phiên bản của chủ đề sẽ trả về phiên bản của chủ đề đang hoạt động (con nếu có con)
  • các chức năng có tên
    get( 'Version' ) // This only works if you have Version defined in the style header.
    	);
    }
    22* tìm chủ đề con trước rồi đến chủ đề gốc

Cách được đề xuất để xếp hàng các biểu định kiểu là thêm một hành động

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
23 và sử dụng
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
9 trong chủ đề con của bạn
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
25.
Nếu bạn không có, hãy tạo một
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
25 trong thư mục chủ đề con của bạn. Dòng đầu tiên của chủ đề con của bạn
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
25 sẽ là một thẻ PHP mở (

Nếu chủ đề gốc tải cả hai biểu định kiểu, thì chủ đề con không cần làm gì cả

Nếu chủ đề gốc tải kiểu của nó bằng một hàm bắt đầu bằng

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
28, chẳng hạn như
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
29 và
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
00, thì chủ đề con chỉ cần tải các kiểu con, sử dụng núm điều khiển của chủ đề gốc trong tham số phụ thuộc

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}

Nếu chủ đề gốc tải kiểu của nó bằng một hàm bắt đầu bằng

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
22, chẳng hạn như
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
02 và
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
03, thì chủ đề con cần tải cả biểu định kiểu gốc và biểu định kiểu con. Đảm bảo sử dụng tên xử lý giống như tên cha đối với các kiểu cha

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
2

Cài đặt chủ đề con khi bạn cài đặt bất kỳ chủ đề nào khác. Bạn có thể sao chép thư mục vào trang web bằng FTP hoặc tạo tệp zip của thư mục chủ đề con, chọn tùy chọn duy trì cấu trúc thư mục và nhấp vào Giao diện > Chủ đề > Thêm mới để tải tệp zip lên

Chủ đề con của bạn hiện đã sẵn sàng để kích hoạt. Đăng nhập vào Màn hình quản trị trang web của bạn và đi tới Màn hình quản trị > Giao diện > Chủ đề. Bạn sẽ thấy chủ đề con của mình được liệt kê và sẵn sàng để kích hoạt. (Nếu cài đặt WordPress của bạn được bật cho nhiều trang web, thì bạn có thể cần phải chuyển sang Màn hình quản trị mạng của mình để bật chủ đề (trong tab Màn hình chủ đề quản trị mạng). Sau đó, bạn có thể quay lại Màn hình quản trị WordPress dành riêng cho trang web của mình để kích hoạt chủ đề con của bạn. )

Ghi chú. Bạn có thể cần lưu lại menu của mình từ Giao diện > Menu và tùy chọn chủ đề (bao gồm cả hình nền và hình ảnh tiêu đề) sau khi kích hoạt chủ đề con

Ngoài tệp

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
25 (như đã lưu ý ở trên), bất kỳ tệp nào bạn thêm vào chủ đề con của mình sẽ ghi đè lên cùng một tệp trong chủ đề gốc

Trong hầu hết các trường hợp, tốt nhất bạn nên tạo một bản sao của các tệp mẫu mà bạn muốn thay đổi từ chủ đề gốc, sau đó thực hiện các sửa đổi của bạn đối với các tệp đã sao chép, giữ nguyên các tệp gốc. Ví dụ: nếu bạn muốn thay đổi mã của tệp

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
05 của chủ đề gốc, bạn sẽ sao chép tệp đó vào thư mục chủ đề con của mình và tùy chỉnh nó ở đó

Mẹo. Có một số plugin cho phép bạn phát hiện mẫu cụ thể nào đang được sử dụng trên trang mà bạn đang xem

Bạn cũng có thể bao gồm các tệp trong chủ đề con không được bao gồm trong chủ đề gốc. Ví dụ: bạn có thể muốn tạo một mẫu cụ thể hơn mẫu được tìm thấy trong chủ đề gốc của mình, chẳng hạn như mẫu cho một kho lưu trữ trang hoặc danh mục cụ thể (e. g. trang-3. php sẽ tải cho một Trang có ID là 3)

Xem trang Phân cấp mẫu để biết thêm thông tin về cách WordPress xác định mẫu nào sẽ sử dụng

Không giống như

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
5,
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
25 của chủ đề con không ghi đè đối tác của nó từ chủ đề gốc. Thay vào đó, nó được tải ngoài các chức năng của cha mẹ. php. (Cụ thể nó được load ngay trước file cha. )

Theo cách đó,

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
25 của chủ đề con cung cấp một phương pháp thông minh, không gặp sự cố để sửa đổi chức năng của chủ đề gốc. Giả sử bạn muốn thêm một chức năng PHP vào chủ đề của mình. Cách nhanh nhất là mở tệp
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
25 của nó và đặt chức năng ở đó. Nhưng điều đó không thông minh. Lần tới khi chủ đề của bạn được cập nhật, chức năng của bạn sẽ biến mất. Nhưng có một cách thay thế đó là cách thông minh. bạn có thể tạo một chủ đề con, thêm tệp
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
25 vào đó và thêm chức năng của bạn vào tệp đó. Chức năng này cũng sẽ thực hiện chính xác công việc tương tự từ đó, với lợi thế là nó sẽ không bị ảnh hưởng bởi các bản cập nhật trong tương lai của chủ đề gốc. Không sao chép toàn bộ nội dung chức năng. php của chủ đề gốc vào các chức năng. php trong chủ đề con

Cấu trúc của

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
25 rất đơn giản. Một thẻ PHP mở ở trên cùng và bên dưới nó, các bit PHP của bạn. Trong đó bạn có thể đặt nhiều hay ít chức năng tùy thích. Ví dụ dưới đây cho thấy một tệp
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
25 cơ bản thực hiện một việc đơn giản. Thêm liên kết favicon vào phần đầu của trang HTML

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
0

Mẹo. Thực tế là chức năng của một chủ đề con. php được tải trước có nghĩa là bạn có thể làm cho các chức năng người dùng của chủ đề có thể cắm được — nghĩa là có thể thay thế bằng một chủ đề con — bằng cách khai báo chúng theo điều kiện

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
6

Theo cách đó, một chủ đề con có thể thay thế một hàm PHP của chủ đề gốc bằng cách khai báo nó trước

Để biết thêm thông tin về những nội dung cần đưa vào tệp

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
25 của chủ đề con bạn, hãy đọc qua trang Chức năng chủ đề

Khi bạn cần bao gồm các tệp nằm trong cấu trúc thư mục của chủ đề con, bạn sẽ cần sử dụng get_stylesheet_directory(). Vì

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
5 nằm trong thư mục gốc của chủ đề con của bạn, nên get_stylesheet_directory() trỏ đến thư mục của chủ đề con bạn (không phải thư mục của chủ đề gốc). Để tham khảo thư mục chủ đề gốc, thay vào đó, bạn sẽ sử dụng get_template_directory()

Dưới đây là một ví dụ minh họa cách sử dụng get_stylesheet_directory() khi tham chiếu một tệp được lưu trữ trong thư mục chủ đề con

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
9

Trong khi đó, ví dụ này sử dụng

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
03 để hiển thị một hình ảnh được lưu trữ trong thư mục
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
66 trong thư mục chủ đề con

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
2

Không giống như

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
67 trả về đường dẫn tệp,
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
68 trả về URL, điều này hữu ích cho các nội dung giao diện người dùng

Mỗi tập lệnh và kiểu nên được sắp xếp theo chức năng riêng của chúng và sau đó chúng sẽ được bao bọc trong một hành động. Để biết thêm thông tin, hãy đọc trang về Bao gồm CSS và JavaScript

WordPress sẽ không tự động tải biểu định kiểu cho chủ đề con của bạn trên giao diện người dùng. Dưới đây là một ví dụ về việc sử dụng hook hành động

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
69 để gọi một hàm liệt kê biểu định kiểu của chủ đề con

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
9
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
90 sẽ ghi đè lên các định dạng như được xác định bởi chủ đề chính, không thêm vào nó

Để hỗ trợ các ngôn ngữ RTL, hãy thêm tệp

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
91 vào chủ đề con của bạn, có chứa

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
9


Ngay cả khi chủ đề gốc không có tệp

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
91, bạn nên thêm tệp
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
91 vào chủ đề con của mình. WordPress sẽ tự động tải tệp
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
91 chỉ khi
get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
95 là đúng

Các chủ đề con có thể được chuẩn bị để dịch sang các ngôn ngữ khác bằng cách sử dụng API quốc tế hóa WordPress. Có những cân nhắc đặc biệt liên quan đến việc quốc tế hóa các chủ đề trẻ em

Để quốc tế hóa chủ đề con, hãy làm theo các bước sau.
1. Thêm một thư mục ngôn ngữ.

  • Ví dụ.
    get( 'Version' ) // This only works if you have Version defined in the style header.
    	);
    }
    96

2. Thêm tập tin ngôn ngữ

  • Tên tệp của bạn phải là
    get( 'Version' ) // This only works if you have Version defined in the style header.
    	);
    }
    97 &
    get( 'Version' ) // This only works if you have Version defined in the style header.
    	);
    }
    98 (tùy thuộc vào ngôn ngữ của bạn), không giống như tệp plugin là
    get( 'Version' ) // This only works if you have Version defined in the style header.
    	);
    }
    99

3. Tải một tên miền văn bản

4. Sử dụng hàm GetText để thêm hỗ trợ i18n cho chuỗi của bạn

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
9____420 tên miền văn bản

Dưới đây là một ví dụ lặp lại cụm từ "Mã là thơ"

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
9

Miền văn bản được xác định trong

get( 'Version' ) // This only works if you have Version defined in the style header.
	);
}
21 nên được sử dụng để dịch tất cả các chuỗi trong chủ đề con. Trong trường hợp một tệp mẫu từ chủ đề gốc đã được đưa vào, thì nên thay đổi miền văn bản từ miền được xác định trong chủ đề gốc thành miền được xác định bởi chủ đề con