Bao gồm tệp PHP trong WordPress

  • Blog
  • Phát triển
  • Hướng dẫn cơ bản về

Biểu trưng của WPMU DEV Hướng dẫn cơ bản về các chức năng của WordPress. tệp php

Bao gồm tệp PHP trong WordPress
Rachel McCollin Rachel McCollin   – Ngày 29 tháng 3 năm 2022

Hướng dẫn cơ bản về các chức năng của WordPress. tệp php

Nếu bạn đã bắt đầu xây dựng chủ đề của riêng mình hoặc thậm chí có thể tạo một chủ đề con để tùy chỉnh một chủ đề khác, thì bạn sẽ tìm hiểu tất cả về các tệp mẫu và phân cấp mẫu của chủ đề. Nhưng những gì về các chức năng chủ đề. tập tin php?

Tệp chức năng là nơi bạn đặt tất cả chức năng mà chủ đề của bạn cần mà không chỉ liên quan đến một mẫu, do đó, mã không chỉ xuất ra một loại nội dung hoặc nội dung chỉ ở một vị trí trong trang, chẳng hạn như thanh bên

WordPress Codex định nghĩa tệp chức năng như thế này

Tệp chức năng hoạt động giống như Plugin WordPress, bổ sung các tính năng và chức năng cho trang web WordPress. Bạn có thể sử dụng nó để gọi các hàm, cả PHP và WordPress tích hợp và để xác định các hàm của riêng bạn. Bạn có thể tạo ra kết quả tương tự bằng cách thêm mã vào Plugin WordPress hoặc thông qua tệp chức năng Chủ đề WordPress

Điều quan trọng cần lưu ý là sự giống nhau giữa tệp chức năng và tệp plugin. Bạn sử dụng tệp chức năng cho cùng một loại mã mà bạn sẽ thêm vào plugin;

Nhưng đó sẽ không phải là một ý kiến ​​hay

Nếu bạn có nhiều mã chức năng cần sử dụng trong trang web của mình hoặc bạn muốn mã đó vẫn hoạt động nếu bạn thay đổi chủ đề, thì bạn nên đặt mã đó vào plugin. Nhưng nếu mã đó phụ thuộc vào chủ đề, thì các chức năng. php là nơi thích hợp để đặt nó. Nguyên tắc chung là

Sử dụng các hàm. php khi bạn cần thêm chức năng đơn giản liên quan đến cách hiển thị nội dung của bạn (i. e. nó sẽ không hoạt động nếu không kích hoạt chủ đề của bạn). Điều này có thể bao gồm thêm phông chữ bổ sung, ví dụ

Viết plugin khi chức năng phức tạp hơn hoặc khi chức năng bổ sung không phụ thuộc vào chủ đề. Một ví dụ là đăng ký các loại bài đăng – bạn không muốn mất các loại bài đăng của mình nếu bạn thay đổi chủ đề trong tương lai

Trong bài đăng này, tôi sẽ hướng dẫn bạn một số cách sử dụng hàm. php và chỉ cho bạn cách thêm mã vào đó cũng như cách kích hoạt mã đó. Tôi cũng sẽ chỉ cho bạn cách sử dụng các chức năng. php trong chủ đề con để ghi đè hoặc thêm chức năng vào chủ đề gốc

Chúng tôi sẽ bao gồm

Sử dụng phổ biến cho tệp chức năng

Lưu ý rằng tệp chức năng dành cho mã phụ thuộc vào chủ đề (tôi. e. sẽ bị mất nếu bạn chuyển đổi chủ đề), có một số ví dụ cụ thể khi thêm mã vào nó đặc biệt hữu ích. Bao gồm các

  • Thêm hỗ trợ chủ đề, ví dụ cho hình ảnh nổi bật, định dạng bài đăng và liên kết RSS
  • Cho WordPress biết tệp dịch của chủ đề ở đâu
  • Đăng ký vị trí menu điều hướng để người dùng thêm menu qua màn hình quản trị menu
  • Thêm, xóa hoặc ghi đè chức năng khỏi chủ đề gốc, sử dụng chủ đề con

Trong bài đăng này, tôi sẽ chỉ cho bạn cách thực hiện từng điều này

Thêm mã vào tệp chức năng và kích hoạt nó

Bạn thêm mã vào tệp chức năng và yêu cầu WordPress kích hoạt nó theo cách giống hệt như cách bạn làm với plugin. phương pháp bao gồm

  • Viết một chức năng mà sau đó bạn gọi trong các tệp mẫu chủ đề của mình – điều này hữu ích khi bạn có một khối mã muốn sử dụng ở nhiều nơi trong chủ đề của mình nhưng nó không hoạt động trong một phần mẫu
  • Kết nối chức năng của bạn với một móc hành động hoặc bộ lọc. Cái này chạy chức năng khi WordPress gặp hook đó. Bản thân WordPress cung cấp hàng trăm móc và bạn cũng có thể tìm thấy một số trong chủ đề và plugin mà bạn có thể sử dụng. Hãy nhớ rằng, nếu bạn đang viết gì đó trong hàm. php mà bạn muốn kích hoạt thông qua hook trong chủ đề bạn đã mua hoặc tải xuống từ thư mục plugin WordPress, thì bạn sẽ cần tạo một chủ đề con để thực hiện điều đó. Nếu không, tệp chức năng của bạn sẽ bị ghi đè vào lần tới khi bạn cập nhật chủ đề
  • Tạo một mã ngắn mà sau đó bạn thêm vào nội dung của mình. Tôi không khuyên bạn nên thêm một mã ngắn thông qua tệp chức năng – tốt hơn là làm điều đó bằng cách sử dụng plugin để nội dung đầu ra của mã ngắn đó không bị mất nếu bạn chuyển đổi chủ đề trong tương lai. , Điều đó cũng có nghĩa là bạn có thể sử dụng plugin đó trên các trang web khác, cho phép bạn truy cập nhiều lần vào mã ngắn của mình
  • Tạo một tiện ích. Thực hành không tốt để làm điều này trong tệp chức năng;

Bạn có thể tìm hiểu cách thực hiện từng thao tác này trong hướng dẫn tạo plugin của chúng tôi

Vì vậy, hãy xem cách bạn làm việc với các chức năng. php và cách bạn thêm một số chức năng phổ biến nhất vào nó

Tạo một tệp chức năng

Nếu chủ đề của bạn chưa có tệp chức năng, bạn sẽ cần tạo một tệp. Tạo một tệp mới trong thư mục chính của chủ đề và gọi nó là hàm. php

Bạn sẽ phải thêm thẻ PHP mở vào tệp nhưng bạn không cần thẻ đóng

Đang tải ý chính 67f041de5d6ea537027ad6da0d9103ff

Tệp chức năng của bạn hiện đã sẵn sàng để bạn thêm mã của mình. Tôi có xu hướng thêm các khối lớn văn bản đã nhận xét trước mỗi phần để tôi có thể dễ dàng tìm lại mã của mình. Một cái gì đó như thế này

Đang tải ý chính be82e35844b18d837f5790a27c769389

Bằng cách đó, khi tôi quét tệp của mình, tôi có thể dễ dàng tìm thấy từng khối mã

Thêm mã thường dùng vào hàm. php

Chúng ta hãy xem xét một số cách sử dụng phổ biến nhất cho tệp chức năng và cách viết mã cho chúng

Thêm hỗ trợ chủ đề

Có một số tính năng nhất định trong WordPress mà bạn phải thêm hỗ trợ chủ đề cho chủ đề của mình để có thể tận dụng chúng. đó là

  • Định dạng bài đăng – các định dạng giống như tumblr như tiêu chuẩn, video, trích dẫn và một bên
  • Đăng hình thu nhỏ – còn được gọi là hình ảnh nổi bật. Nếu bạn muốn hiển thị những thứ này trong chủ đề của mình, bạn cũng sẽ phải thêm mã để xuất chúng vào các tệp mẫu của mình, nhưng chúng sẽ không có sẵn trong màn hình quản trị trừ khi bạn thêm hỗ trợ chủ đề cho chúng
  • Nền tùy chỉnh – cho phép bạn (hoặc những người khác sử dụng chủ đề của bạn) tùy chỉnh hình nền và màu sắc thông qua tùy biến
  • Tiêu đề tùy chỉnh – hoạt động theo cách tương tự như nền tùy chỉnh
  • Liên kết nguồn cấp dữ liệu tự động – cho nguồn cấp dữ liệu RSS
  • HTML5 – cho các biểu mẫu tìm kiếm, nhận xét, thư viện, v.v. Điều này không ảnh hưởng đến khả năng viết mã chủ đề của bạn bằng HTML5, nhưng liên quan đến mã do WordPress tạo ra
  • Thẻ tiêu đề – điều này cho phép bạn thêm thẻ tiêu đề vào <head> của các trang của bạn cho mục đích SEO và khả năng truy cập. Bạn sẽ không cần điều này nếu bạn có plugin SEO làm việc này cho bạn

Vì vậy, để thêm hỗ trợ chủ đề cho các định dạng bài đăng, chẳng hạn, bạn sử dụng hàm add_theme_support() trong tệp hàm của mình

Đang tải ý chính fe264851131411e93ef1ee85315d985f

Một số tính năng bạn thêm hỗ trợ chủ đề có các tham số bổ sung;

Đang tải ý chính be93d67bf83ff7f6294d308118c445bb

Và đối với hình ảnh nổi bật, bạn có thể chỉ định loại bài đăng nào bạn muốn thêm hỗ trợ cho chúng

Đang tải ý chính 4608297ea85921f13901039e7e39f96c

Nhưng không cách nào trong số này hoạt động trừ khi bạn đặt mã của mình bên trong một hàm mà sau đó bạn gắn vào móc chính xác, đó là móc hành động after_setup_theme. Bạn có thể thêm tất cả các hàm add_theme_support() của mình bên trong một hàm lớn hơn mà sau đó bạn móc vào after_setup_theme. Vì vậy, nếu bạn muốn thêm hỗ trợ chủ đề cho hình thu nhỏ của bài đăng, định dạng bài đăng, HTML5 và liên kết nguồn cấp dữ liệu tự động, bạn hãy thêm phần này vào tệp chức năng của mình

Đang tải ý chính eb467fc962925be2ea030e277ad815c6

Lưu ý rằng tôi đã thêm văn bản nhận xét phía trên mỗi mục mà tôi đã thêm hỗ trợ chủ đề, vì vậy nếu tôi hoặc bất kỳ ai khác quay lại tệp sau này, bạn sẽ dễ dàng biết điều gì đang xảy ra

Thêm tệp dịch

Nếu những người không nói được ngôn ngữ của bạn có khả năng đang làm việc trên trang web của bạn hoặc sử dụng chủ đề của bạn, thì bạn nên làm cho chủ đề của mình sẵn sàng để dịch. Điều này không ảnh hưởng đến giao diện người dùng của trang web mà khách truy cập nhìn thấy, nhưng ảnh hưởng đến màn hình quản trị mà người dùng của bạn sẽ thấy. Bản dịch có nghĩa là bất kỳ văn bản nào bạn thêm vào màn hình quản trị thông qua chủ đề của bạn sẽ được dịch bằng tệp dịch

Bạn cho WordPress biết vị trí của tệp dịch của chủ đề bằng cách sử dụng hàm load_theme_textdomain() trong tệp chức năng của bạn, như vậy

Đang tải ý chính b4c708c0ab8798009c201a0bfe1919be

Thao tác này sử dụng hàm get_template_directory() để tìm thư mục của chủ đề, sau đó tìm tệp bắt đầu bằng wpmu-theme trong thư mục con languages, do đó, đường dẫn sẽ là wp-content/themes/mytheme/languages/và tên tệp của tệp ngôn ngữ sẽ bắt đầu bằng wpmu-theme theo sau là mã ngôn ngữ

Nếu bạn cần làm cho chủ đề của mình sẵn sàng để dịch, bạn sẽ phải làm nhiều việc hơn là chỉ tải miền văn bản này – hướng dẫn toàn diện của chúng tôi để dịch plugin cũng áp dụng cho các chủ đề và cho bạn biết mọi thứ bạn cần biết

Đăng ký menu điều hướng

Một việc khác bạn làm trong tệp chức năng của mình là đăng ký vị trí cho các menu điều hướng. Nếu bạn đã quen làm việc với các chủ đề của bên thứ ba, bạn sẽ thấy rằng nhiều chủ đề trong số họ có hộp kiểm Điều hướng chính mà bạn có thể chọn trong màn hình quản trị Menu, cho phép bạn thêm menu bạn tạo vào vị trí đó trong chủ đề. Nếu bạn muốn người dùng có thể thực hiện việc này trong chủ đề của mình, thì bạn cần sử dụng hàm add_theme_support()0

Đang tải ý chính 8776d701d970f297e2e65d9d7ac83c27

Điều này đăng ký một vị trí menu, vị trí này sẽ được hiển thị trong màn hình quản trị dưới dạng Điều hướng chính và có ID là chính. Sau đó, bạn sử dụng ID đó để xuất menu trong tiêu đề của chủ đề. tập tin php

Lưu ý rằng tôi đã đặt tên menu của mình ở chế độ sẵn sàng dịch trong mã ở trên, vì vậy bất kỳ ai sử dụng chủ đề của tôi đang làm việc bằng một ngôn ngữ không phải tiếng Anh sẽ có văn bản “Điều hướng chính” được dịch cho họ bằng tệp dịch của tôi

Bạn cũng có thể sử dụng chức năng này để đăng ký nhiều vị trí menu điều hướng. Mã bên dưới đăng ký một menu chính, cộng với một menu bổ sung trong thanh bên

Đang tải ý chính 87e0f124ef49808ddb1112f8f1a8932c

Một lần nữa, bạn cần mã hóa menu vào tệp add_theme_support()1 của chủ đề, sử dụng hàm add_theme_support()2

Kéo tất cả lại với nhau

Những người tinh mắt nhất trong số các bạn sẽ phát hiện ra rằng tất cả các chức năng tôi đã cung cấp ở trên đều được kích hoạt thông qua cùng một hook hành động. after_setup_theme. Điều này có nghĩa là thay vì viết một số hàm riêng biệt, bạn có thể thêm tất cả chúng vào một hàm trong các hàm của mình. php và sau đó kích hoạt tệp đó bằng hook hành động

Bạn sẽ có một chức năng lớn

Đang tải ý chính a19ff072e61829a3dc080dda04754cd5

Tôi đã thêm nhiều nhận xét bên trong chức năng của mình để tôi biết điều gì đang xảy ra ở đâu. Điều này sẽ dễ dàng hơn nếu tôi cần chỉnh sửa hoặc ghi đè chức năng trong tương lai

Bao gồm tập tin

Đôi khi, bạn sẽ thấy tệp chức năng của mình lớn hơn mức bạn có thể quản lý một cách thoải mái và có các khối mã mà bạn muốn giữ riêng. Nếu điều này xảy ra, bạn nên tạo các tệp riêng biệt, được gọi là tệp bao gồm, cho mã đó, sau đó gọi chúng từ tệp chức năng của bạn

Tạo một thư mục trong chủ đề của bạn có tên là add_theme_support()4 và sau đó tạo một tệp php mới cho từng khối mã bạn muốn tách ra. Vì vậy, nếu tôi muốn chuyển thiết lập chủ đề sang một tệp khác, chẳng hạn, tôi chuyển tất cả mã ở trên vào một tệp có tên add_theme_support()5 và sau đó gọi nó trong tệp chức năng của tôi

Đang tải ý chính 8add93e25e264685d0d62ffa01ca28ad

Điều này gọi mã trong tệp bao gồm và chạy nó ở vị trí trong tệp chức năng mà tôi đã thêm hàm add_theme_support()6 đó. Tôi có xu hướng đặt tất cả các mục bao gồm của mình ở đầu tệp chức năng để tôi dễ dàng tìm thấy chúng, một lần nữa với các nhận xét để cho tôi biết chúng làm gì

Làm việc với Chủ đề Cha mẹ và Con cái

Tệp chức năng có thể rất mạnh khi bạn làm việc với các chủ đề gốc và con. Trong một chủ đề con, bạn có thể sử dụng tệp chức năng của mình để ghi đè hoặc xóa các chức năng khỏi chủ đề gốc hoặc để thêm các chức năng mới của riêng bạn

Có ba cách để ghi đè hoặc thêm chức năng trong chủ đề con

  • Tạo phiên bản mới của chức năng có thể cắm
  • Vô hiệu hóa một chức năng từ chủ đề gốc
  • Thêm chức năng của riêng bạn, sử dụng mức độ ưu tiên để ghi đè chức năng của chủ đề gốc

Chúng ta hãy lần lượt xem xét nhanh từng vấn đề này

Chức năng có thể cắm

Nếu bạn đang làm việc với một chủ đề gốc được mã hóa tốt hoặc một khung chủ đề được thiết kế để sử dụng làm chủ đề gốc, thì rất có thể các chức năng trong tệp chức năng của nó sẽ có thể cắm được

Bạn có thể dễ dàng phát hiện ra một chủ đề có thể cắm được vì nó sẽ được bao bọc trong một thẻ có điều kiện để kiểm tra xem chức năng đó đã tồn tại chưa, như thế này

Đang tải ý chính 5c64a5a9c2e34dc999150120cac32bd6

Vì các hàm từ chủ đề con chạy trước các hàm từ chủ đề gốc, điều này có nghĩa là nếu bạn tạo một hàm có cùng tên trong chủ đề con của mình, thì WordPress sẽ không chạy hàm từ chủ đề gốc. Vì vậy, để ghi đè chủ đề gốc, chỉ cần tạo chức năng của riêng bạn có cùng tên trong tệp chức năng của chủ đề con bạn

Tắt chức năng

Để hủy kích hoạt một chức năng, bạn gỡ móc chức năng đó khỏi hành động hoặc móc bộ lọc mà chức năng đó được gắn vào. Vì vậy, nếu chủ đề gốc của bạn có chức năng gọi là add_theme_support()7 được kích hoạt thông qua móc nối add_theme_support()8, thì bạn hủy kích hoạt nó trong chủ đề con của mình như vậy

Đang tải ý chính de3832788b1046e1afadb6735bee9b67

Điều này có nghĩa là chức năng gốc sẽ không chạy nữa. Sau đó, bạn có thể viết một chức năng mới nếu muốn có chức năng khác trong chủ đề con của mình – gắn chức năng đó vào cùng một hook nhưng không đặt tên giống nhau

Ghi chú. Nếu hàm gốc có tham số mức độ ưu tiên trong hàm add_theme_support()9 chạy chức năng mà bạn muốn hủy kích hoạt, thì bạn phải bao gồm cùng mức độ ưu tiên đó khi hủy kích hoạt nó. Tôi sẽ đến với các ưu tiên trong phần tiếp theo

Sử dụng chức năng ưu tiên

Tùy chọn cuối cùng là tạo một chức năng mới có mức độ ưu tiên cao hơn chức năng bạn muốn ghi đè, nghĩa là nó sẽ chạy sau chức năng đó. Bạn phải làm điều này vì theo mặc định, WordPress sẽ chạy các chức năng từ chủ đề con của bạn trước;

Vì vậy, giả sử chủ đề gốc của bạn có chức năng gọi là add_theme_support()7, được kích hoạt thông qua móc nối add_theme_support()8 với mức độ ưu tiên after_setup_theme2

Đang tải ý chính 196e27e1af7550899ecb03110588523e

Bạn có thể viết một hàm ghi đè nó và sau đó gắn hàm đó vào móc add_theme_support()8 với mức độ ưu tiên cao hơn, chẳng hạn như after_setup_theme4

Đang tải ý chính edf9249be7bbe47e45d8d0ba416f9bc6

Lưu ý rằng nếu hàm cha không được chỉ định mức độ ưu tiên, thì hàm này sẽ sử dụng giá trị mặc định là 10. Vì vậy, bạn có thể sử dụng bất kỳ thứ gì cao hơn 10 cho hàm con của mình để đảm bảo rằng nó chạy sau hàm cha

Tệp chức năng là bạn của bạn

Tệp chức năng chủ đề hoạt động theo cách rất giống với plugin, nhưng nó dành riêng cho chủ đề của bạn. Vì vậy, bạn chỉ nên sử dụng nó để thêm chức năng mà bạn không muốn mất nếu sau này chuyển đổi chủ đề hoặc chức năng mà bạn không muốn sử dụng trên một trang web khác. Trong bài đăng này, bạn đã biết tệp chức năng được sử dụng để làm gì cũng như cách triển khai một số cách sử dụng đó. Xử lý tệp chức năng của bạn cẩn thận, tránh sử dụng nó thay vì plugin và nó sẽ giúp bạn phát triển chủ đề của mình

Làm thế nào để bạn sử dụng các tập tin chức năng?