Móc hành động và bộ lọc trong WordPress

Móc hành động và bộ lọc là một phần cơ bản của các API WordPress khác nhau. Không có chúng, bạn bị hạn chế về những gì bạn có thể làm trong các chủ đề và (đặc biệt) các plugin của mình

Nhưng đôi khi có thể dễ nhầm lẫn giữa hai điều này, đặc biệt là trong trường hợp WordPress có cả hook hành động và hook bộ lọc có cùng tên

Trong bài viết này, tôi sẽ định nghĩa các móc nối hành động và bộ lọc, đồng thời mô tả sự khác biệt giữa chúng và tôi sẽ trình bày cách sử dụng chúng trong các chủ đề và plugin của bạn. Tôi cũng sẽ đưa ra một số ví dụ về thời điểm bạn có thể sử dụng từng

Khi bạn thêm hành động trong WordPress và móc bộ lọc vào mã của mình (hoặc bạn đang kết nối các chức năng với chúng), điều đó giúp hiểu cách các hành động và bộ lọc được gọi bởi WordPress và điều gì sẽ xảy ra theo thứ tự nào. Tôi sẽ không trình bày chi tiết ở đây vì chúng tôi có một hướng dẫn khác thực hiện công việc đó

Định nghĩa và sự khác biệt

Hãy bắt đầu với một số định nghĩa. Tôi cũng sẽ định nghĩa các móc và chức năng của hành động và bộ lọc để bạn có thể thấy sự khác biệt giữa tất cả chúng

Chức năng

Các chức năng là điều đầu tiên mà hầu hết mọi người làm việc khi họ học cách phát triển WordPress; . php, thì bạn sẽ viết một hàm

Các chức năng xác định cách điều gì đó sẽ xảy ra. Bạn viết mã một hàm để truy vấn dữ liệu, xuất nội dung hoặc thực hiện nhiều tác vụ khác. Bạn có thể gọi (thực thi) các chức năng trực tiếp trong các tệp mẫu của chủ đề hoặc bạn có thể nối chúng với móc hành động hoặc bộ lọc. Hàm cũng có thể bao gồm các thẻ mẫu, chẳng hạn như thẻ điều kiện, để chỉ định thời điểm áp dụng hàm

Tôi sẽ chỉ cho bạn các cách khác nhau để thực thi các hàm ở phần sau của bài viết này

móc hành động

Móc hành động (hoặc hành động) được kích hoạt khi điều gì đó diễn ra, chẳng hạn như tải trang, người dùng đăng nhập hoặc hành động tùy chỉnh mà bạn xác định trong chủ đề hoặc plugin của mình

Bạn có thể thêm móc hành động của riêng mình bằng cách sử dụng hàm

if ( ! function_exists( 'compass_colophon' ) ) {
94 mà tôi sẽ trình bày ngay sau đây. Bất kỳ chức năng nào bạn kết nối với hành động đó sẽ chạy tại thời điểm đó trong mã

móc lọc

Móc lọc hoặc bộ lọc, kiểm soát cách điều gì đó xảy ra hoặc thay đổi điều gì đó đã được xuất ra. Bạn có thể sử dụng bộ lọc để xuất siêu dữ liệu ở một định dạng cụ thể, ghi đè đầu ra văn bản bằng plugin của bạn hoặc ngăn nội dung nào đó hiển thị

Bạn thêm các bộ lọc vào mã của mình bằng cách sử dụng hàm

if ( ! function_exists( 'compass_colophon' ) ) {
95 mà tôi sẽ trình bày ngay sau đây. Như từ 'áp dụng' cho biết, bạn áp dụng các bộ lọc cho mã hiện có, trong khi một hành động bạn tạo bằng cách sử dụng
if ( ! function_exists( 'compass_colophon' ) ) {
94 sẽ trống cho đến khi bạn nối các chức năng với nó

Sử dụng Chức năng, Hành động và Bộ lọc

Hãy xem một số ví dụ minh họa cách bạn sử dụng các chức năng, hành động và bộ lọc. Đầu tiên, chúng ta sẽ xem xét việc sử dụng các hàm trực tiếp trong mã của bạn mà không cần gắn chúng vào hook

Gọi hàm trực tiếp

Đây là một ví dụ về hàm được gọi trực tiếp trong tệp mẫu. Trong các trang web khách hàng của tôi, tôi thêm phần viết tắt ở cuối trang, bao gồm thông tin bản quyền. Đây là chức năng

1
if ( ! function_exists( 'compass_colophon' ) ) {
2
function compass_colophon() { ?>
3
     class="colophon" role="contentinfo">
4
if ( ! function_exists( 'compass_colophon' ) ) {
0
if ( ! function_exists( 'compass_colophon' ) ) {
1
if ( ! function_exists( 'compass_colophon' ) ) {
2
if ( ! function_exists( 'compass_colophon' ) ) {
0
if ( ! function_exists( 'compass_colophon' ) ) {
1
if ( ! function_exists( 'compass_colophon' ) ) {
2
if ( ! function_exists( 'compass_colophon' ) ) {
3
if ( ! function_exists( 'compass_colophon' ) ) {
4
if ( ! function_exists( 'compass_colophon' ) ) {
5
if ( ! function_exists( 'compass_colophon' ) ) {
6
if ( ! function_exists( 'compass_colophon' ) ) {
7
if ( ! function_exists( 'compass_colophon' ) ) {
8
if ( ! function_exists( 'compass_colophon' ) ) {
9
2
0
2
1
2
2
2
3
if ( ! function_exists( 'compass_colophon' ) ) {
5
2
5
2
6
2
7
2
8_______59
function compass_colophon() { ?>
0
function compass_colophon() { ?>
1
function compass_colophon() { ?>
2

Chức năng này có thể cắm được khi tôi sử dụng nó trong chủ đề gốc; . Lưu ý rằng chức năng này bao gồm một chức năng khác,

if ( ! function_exists( 'compass_colophon' ) ) {
97, gọi nó trực tiếp trong mã

Chức năng này nằm trong tệp

if ( ! function_exists( 'compass_colophon' ) ) {
98 của chủ đề gốc của tôi. Tôi có thể gọi nó trực tiếp trong tệp
if ( ! function_exists( 'compass_colophon' ) ) {
99 của chủ đề của mình, như vậy

1
function compass_colophon() { ?>
4

Điều này xuất mã trong hàm tại điểm trong chủ đề của tôi, nơi tôi gọi nó. Bạn cũng có thể truyền tham số cho các hàm của mình, sau đó các tham số này sẽ được sử dụng bên trong hàm

Như tôi sẽ trình bày ngay sau đây, chức năng này cũng có thể được nối với một hành động hoặc một bộ lọc.

Kết nối chức năng với hành động

Thay vì gọi trực tiếp chức năng colophon đó, tôi sẽ linh hoạt hơn nếu tôi gắn nó vào một cái móc

Tạo móc hành động

Thay vì gọi hàm

if ( ! function_exists( 'compass_colophon' ) ) {
97 trong tệp chân trang của tôi, tôi có thể thêm một hook hành động tại điểm đó trong chân trang. php tập tin, bằng cách thêm này

1
function compass_colophon() { ?>
6

Hàm

if ( ! function_exists( 'compass_colophon' ) ) {
94 có một tham số bắt buộc, đó là tên của hành động. Bạn cũng có thể tùy ý thêm đối số cho nó

Kết nối chức năng với hành động

Vì vậy, bây giờ thay vì gọi chức năng colophon của tôi, tôi cần nối nó với hook hành động mới của mình. Trong chức năng của tôi. php, tôi thêm tệp này vào chức năng của mình

1
function compass_colophon() { ?>
8

Điều này móc chức năng của tôi với hành động

2
02, có nghĩa là mã bên trong chức năng của tôi sẽ chạy tại điểm trong mã mà hành động đã được đặt. Tham số đầu tiên là tên của hook hành động và tham số thứ hai là tên hàm của tôi

Một lợi thế khi thực hiện theo cách này là bạn có thể kết nối nhiều chức năng với cùng một hành động và bạn có thể đặt mức độ ưu tiên để chúng kích hoạt theo thứ tự bạn muốn.

Vì vậy, giả sử tôi có một chức năng khác mà tôi muốn móc vào móc

2
02 của mình, được gọi là
2
04, chứa một số chữ in nhỏ hơn

1
3
0
2
3
2
3
3
4
4
3
6
if ( ! function_exists( 'compass_colophon' ) ) {
1
function compass_colophon() { ?>
2
if ( ! function_exists( 'compass_colophon' ) ) {
0
     class="colophon" role="contentinfo">
0

Bạn có thể thấy ở đây tôi đã thêm tham số thứ ba vào hàm

2
05 của mình, đây là tham số ưu tiên. Mức độ ưu tiên mặc định là
2
06, sẽ được áp dụng nếu bạn để trống phần này. Vì vậy, vì tôi chưa đặt mức độ ưu tiên cho hàm
if ( ! function_exists( 'compass_colophon' ) ) {
97 của mình, nên việc đặt 20 cho hàm
2
04 sẽ khiến hàm đó chạy sau hàm
if ( ! function_exists( 'compass_colophon' ) ) {
97

Unhooking chức năng từ hành động

Đôi khi bạn muốn dừng một chức năng đang chạy. Một cách để làm điều đó là tạo một phiên bản giả của chức năng không làm gì nếu nó có thể cắm được. Nói một cách đơn giản, các chức năng có thể cắm được cho phép bạn ghi đè một số hành vi tùy thuộc vào thứ tự thực thi mã. Bạn cũng có thể muốn tìm hiểu kiến ​​thức cơ bản về các chức năng có thể cắm và cách sử dụng chúng để bắt kịp nếu bạn chưa nghe về chúng

  • Móc hành động và bộ lọc trong WordPress

    Hiểu các chức năng có thể cắm của WordPress và cách sử dụng của chúng

    Móc hành động và bộ lọc trong WordPress

    Rakhitha Nimesh

    05 Th03 2013

Một cách khác để đạt được điều này là sử dụng hook hành động. Nếu chức năng đã được móc vào móc hành động, thì bạn có thể thực hiện việc này bằng cách sử dụng chức năng

2
10. Vì vậy, nếu tôi muốn ngăn hàm
2
04 của mình chạy, tôi gỡ nó ra khỏi tác vụ
2
02 như vậy

1
     class="colophon" role="contentinfo">
2

Hàm

2
13 có ba tham số. tên của hook hành động, tên của chức năng và mức độ ưu tiên mà chức năng ban đầu được nối với hành động. Bạn phải bao gồm mức độ ưu tiên để điều này hoạt động

Bạn cũng có thể gỡ bỏ tất cả các chức năng khỏi một hành động nếu bạn muốn ngăn không cho tất cả chúng thực thi. Hãy cẩn thận khi thực hiện việc này, vì có thể có các chức năng mà bạn không biết liên quan đến hành động của mình

Để thực hiện việc này, hãy sử dụng hàm

2
14

1
     class="colophon" role="contentinfo">
4

Việc thêm số ưu tiên làm tham số thứ hai chỉ loại bỏ các chức năng được nối với hook hành động đó với mức độ ưu tiên mà bạn đã chỉ định, giúp bạn có nhiều quyền kiểm soát hơn

Chức năng móc vào bộ lọc

Bạn cũng có tùy chọn móc các chức năng của mình vào các móc lọc. Bạn làm điều này khi bạn muốn thay đổi hoặc ghi đè lên một số mã hiện có. Khi bạn tạo hook bộ lọc (sử dụng hàm

2
15), bạn bọc mã đó xung quanh mã trong chủ đề hoặc plugin của mình, mã này sau đó sẽ được thay đổi bởi bất kỳ bộ lọc nào được gắn vào hook

Điều này có thể hữu ích nếu bạn có các tùy chọn chủ đề hoặc plugin mà bạn muốn ghi đè cài đặt mặc định hoặc nếu bạn đang tạo một chủ đề gốc có thể có các thành phần bị chủ đề con ghi đè

Tạo móc lọc

Hàm

2
15 có ba tham số. tên móc bộ lọc, giá trị mà bạn muốn lọc (tức là. giá trị mặc định) và các biến tùy chọn mà sau đó bạn chuyển đến các hàm được nối với bộ lọc

Bạn có thể thêm bộ lọc vào các tệp mẫu chủ đề của mình hoặc bên trong một chức năng được nối thông qua hook hành động. Hãy xem xét cả hai lựa chọn

Quay trở lại chức năng

if ( ! function_exists( 'compass_colophon' ) ) {
97 của tôi, tôi chuyển đổi nó thành một bộ lọc bằng cách thêm nội dung của nó vào chân trang của tôi. php bên trong hàm
2
15 như vậy

1
     class="colophon" role="contentinfo">
6
2
_______8
3
if ( ! function_exists( 'compass_colophon' ) ) {
0
4
if ( ! function_exists( 'compass_colophon' ) ) {
2
if ( ! function_exists( 'compass_colophon' ) ) {
1
if ( ! function_exists( 'compass_colophon' ) ) {
1
if ( ! function_exists( 'compass_colophon' ) ) {
0
4
6
if ( ! function_exists( 'compass_colophon' ) ) {
2
if ( ! function_exists( 'compass_colophon' ) ) {
5
if ( ! function_exists( 'compass_colophon' ) ) {
4
if ( ! function_exists( 'compass_colophon' ) ) {
7
if ( ! function_exists( 'compass_colophon' ) ) {
6
if ( ! function_exists( 'compass_colophon' ) ) {
8
2
0
if ( ! function_exists( 'compass_colophon' ) ) {
9
if ( ! function_exists( 'compass_colophon' ) ) {
05
2
1
if ( ! function_exists( 'compass_colophon' ) ) {
5
2
3
2
6
2
5
if ( ! function_exists( 'compass_colophon' ) ) {
11
2
7_______113

Điều này xuất mã mà tôi đã đặt làm tham số thứ hai của hàm

2
15 của mình

Tuy nhiên, tôi không muốn thêm phần này trực tiếp vào tệp mẫu chủ đề của mình, vì vậy tôi sẽ thêm bộ lọc vào chức năng mà tôi đã đính kèm thông qua hook hành động

Vì vậy, tôi thêm hành động

2
02 vào chân trang của mình. php bằng cách sử dụng hàm
if ( ! function_exists( 'compass_colophon' ) ) {
94 như minh họa ở trên, sau đó tôi tạo một hàm trong hàm của mình. php được nối với hành động đó và chứa bộ lọc

1
if ( ! function_exists( 'compass_colophon' ) ) {
2
if ( ! function_exists( 'compass_colophon' ) ) {
17
3
if ( ! function_exists( 'compass_colophon' ) ) {
19
4
if ( ! function_exists( 'compass_colophon' ) ) {
21
if ( ! function_exists( 'compass_colophon' ) ) {
1
if ( ! function_exists( 'compass_colophon' ) ) {
23
if ( ! function_exists( 'compass_colophon' ) ) {
0
if ( ! function_exists( 'compass_colophon' ) ) {
25
if ( ! function_exists( 'compass_colophon' ) ) {
2
if ( ! function_exists( 'compass_colophon' ) ) {
27
if ( ! function_exists( 'compass_colophon' ) ) {
4
if ( ! function_exists( 'compass_colophon' ) ) {
29
if ( ! function_exists( 'compass_colophon' ) ) {
6
if ( ! function_exists( 'compass_colophon' ) ) {
01
if ( ! function_exists( 'compass_colophon' ) ) {
8
if ( ! function_exists( 'compass_colophon' ) ) {
03
if ( ! function_exists( 'compass_colophon' ) ) {
9
if ( ! function_exists( 'compass_colophon' ) ) {
05
2
1
if ( ! function_exists( 'compass_colophon' ) ) {
07
2
3
if ( ! function_exists( 'compass_colophon' ) ) {
09
2
5
if ( ! function_exists( 'compass_colophon' ) ) {
01
2
7
if ( ! function_exists( 'compass_colophon' ) ) {
13
2
9
if ( ! function_exists( 'compass_colophon' ) ) {
15
function compass_colophon() { ?>
1
if ( ! function_exists( 'compass_colophon' ) ) {
17
if ( ! function_exists( 'compass_colophon' ) ) {
18
if ( ! function_exists( 'compass_colophon' ) ) {
19
if ( ! function_exists( 'compass_colophon' ) ) {
20
if ( ! function_exists( 'compass_colophon' ) ) {
21

Điều này có nghĩa là bây giờ tôi có thể ghi đè nội dung mặc định theo một trong ba cách

  • bằng cách tạo một chức năng mới có tên là
    if ( ! function_exists( 'compass_colophon' ) ) {
    
    97 trong chủ đề con của tôi, chức năng này sẽ ghi đè chức năng trong chủ đề gốc của tôi vì có thể cắm được
  • bằng cách gỡ móc hàm
    if ( ! function_exists( 'compass_colophon' ) ) {
    
    97 khỏi hook hành động
    2
    02 và viết một hàm mới mà tôi đính kèm vào vị trí của nó
  • bằng cách tạo một hàm mới mà sau đó tôi móc vào hook bộ lọc
    2
    25, hàm này sẽ ghi đè giá trị trong hàm
    2
    15 của tôi

Trong cuộc sống thực, bạn sẽ không cần phải có nhiều tùy chọn như vậy, vì vậy, nhiều khả năng bạn sẽ áp dụng các bộ lọc cho một phần nội dung trong chức năng của mình hơn là toàn bộ nội dung

Vì vậy, tôi có thể tạo hai bộ lọc, một cho phần bản quyền và một cho phần ghi nhận

1
if ( ! function_exists( 'compass_colophon' ) ) {
2
if ( ! function_exists( 'compass_colophon' ) ) {
17
3
if ( ! function_exists( 'compass_colophon' ) ) {
27
4
if ( ! function_exists( 'compass_colophon' ) ) {
29
if ( ! function_exists( 'compass_colophon' ) ) {
1
if ( ! function_exists( 'compass_colophon' ) ) {
31
if ( ! function_exists( 'compass_colophon' ) ) {
0
if ( ! function_exists( 'compass_colophon' ) ) {
33
if ( ! function_exists( 'compass_colophon' ) ) {
2
if ( ! function_exists( 'compass_colophon' ) ) {
23
if ( ! function_exists( 'compass_colophon' ) ) {
4
if ( ! function_exists( 'compass_colophon' ) ) {
25
if ( ! function_exists( 'compass_colophon' ) ) {
6
if ( ! function_exists( 'compass_colophon' ) ) {
27
if ( ! function_exists( 'compass_colophon' ) ) {
8
if ( ! function_exists( 'compass_colophon' ) ) {
29
if ( ! function_exists( 'compass_colophon' ) ) {
9
if ( ! function_exists( 'compass_colophon' ) ) {
01
2
1
if ( ! function_exists( 'compass_colophon' ) ) {
45
2
3
if ( ! function_exists( 'compass_colophon' ) ) {
47
2
5
if ( ! function_exists( 'compass_colophon' ) ) {
31
2
7
if ( ! function_exists( 'compass_colophon' ) ) {
51
2
9
if ( ! function_exists( 'compass_colophon' ) ) {
07
function compass_colophon() { ?>
1
if ( ! function_exists( 'compass_colophon' ) ) {
09
if ( ! function_exists( 'compass_colophon' ) ) {
18
if ( ! function_exists( 'compass_colophon' ) ) {
01
if ( ! function_exists( 'compass_colophon' ) ) {
20
if ( ! function_exists( 'compass_colophon' ) ) {
59
if ( ! function_exists( 'compass_colophon' ) ) {
60
if ( ! function_exists( 'compass_colophon' ) ) {
47
if ( ! function_exists( 'compass_colophon' ) ) {
62
if ( ! function_exists( 'compass_colophon' ) ) {
63
if ( ! function_exists( 'compass_colophon' ) ) {
64
if ( ! function_exists( 'compass_colophon' ) ) {
19
if ( ! function_exists( 'compass_colophon' ) ) {
66
if ( ! function_exists( 'compass_colophon' ) ) {
21

Sau đó, tôi có thể ghi đè lên toàn bộ chức năng compass_colophon của mình bằng cách hủy kết nối nó hoặc viết một chức năng mới trong chủ đề con của mình hoặc tôi có thể tạo một chức năng được nối với hook bộ lọc

2
27 hoặc
2
28 để ghi đè từng phần tử riêng lẻ

Chức năng móc vào bộ lọc

Để móc một hàm vào hook bộ lọc, bạn sử dụng hàm

2
29, hàm này có hai tham số. tên của hook và tên của hàm

Vì vậy, để thay đổi các khoản tín dụng, tôi sẽ viết chức năng này

1
if ( ! function_exists( 'compass_colophon' ) ) {
69
2
_______071
3
if ( ! function_exists( 'compass_colophon' ) ) {
73
4
if ( ! function_exists( 'compass_colophon' ) ) {
5
if ( ! function_exists( 'compass_colophon' ) ) {
1
if ( ! function_exists( 'compass_colophon' ) ) {
77
if ( ! function_exists( 'compass_colophon' ) ) {
0
if ( ! function_exists( 'compass_colophon' ) ) {
79
if ( ! function_exists( 'compass_colophon' ) ) {
2
if ( ! function_exists( 'compass_colophon' ) ) {
81

Điều này sẽ ghi đè giá trị được đặt trong hook bộ lọc

2
28 ban đầu của tôi bằng nội dung của hàm
2
31 của tôi, nhưng giữ nguyên mọi thứ khác trong hàm
if ( ! function_exists( 'compass_colophon' ) ) {
97

Bạn cũng có thể chỉ định mức độ ưu tiên khi móc các chức năng vào bộ lọc, theo cách hoàn toàn giống với móc hành động. Các chức năng có mức độ ưu tiên thấp hơn sẽ được chạy trước

Unhooking chức năng từ bộ lọc

Giống như các móc hành động, bạn cũng có thể xóa các chức năng khỏi móc lọc. Bạn thực hiện việc này bằng cách sử dụng hàm

2
33 có ba tham số. tên móc bộ lọc, tên hàm và mức độ ưu tiên, bắt buộc nếu mức độ ưu tiên được đặt khi hàm được móc vào bộ lọc ban đầu

Vì vậy, để loại bỏ chức năng

2
31 của tôi, tôi sử dụng chức năng này

1
if ( ! function_exists( 'compass_colophon' ) ) {
83

Sau đó, đầu ra mã sẽ trở lại giá trị mà tôi đã chỉ định trong hàm

2
15 ban đầu của mình. Vì vậy, nếu tôi muốn xóa hàm
2
31 và không có gì xuất hiện ở vị trí của nó, tôi phải thêm một hàm mới. Sau đó, tôi mở chức năng đầu tiên và kết nối chức năng mới của mình như vậy

1
if ( ! function_exists( 'compass_colophon' ) ) {
85
2
if ( ! function_exists( 'compass_colophon' ) ) {
87
3
function compass_colophon() { ?>
2
4
if ( ! function_exists( 'compass_colophon' ) ) {
83
if ( ! function_exists( 'compass_colophon' ) ) {
1
if ( ! function_exists( 'compass_colophon' ) ) {
93

Tóm tắt nhanh

Chúng ta hãy xem toàn bộ sự việc để hiểu rõ hơn cách nó khớp với nhau. Mục đích chính của chúng tôi trong hướng dẫn này là xuất nội dung xuống chân trang và thực hiện theo cách giúp người khác dễ dàng sửa đổi nội dung chân trang

Cách đơn giản nhất để thực hiện việc này là gọi trực tiếp hàm bên trong chân trang. tập tin php. Tuy nhiên, điều này lấy đi một số tính linh hoạt liên quan đến việc thực thi chức năng và đầu ra của nó. Một cách để khắc phục hạn chế này là sử dụng hook và đó là điều chúng tôi đã làm tiếp theo

Chúng tôi đã thay thế lệnh gọi hàm

if ( ! function_exists( 'compass_colophon' ) ) {
97 bằng lệnh gọi tới
if ( ! function_exists( 'compass_colophon' ) ) {
94. Hãy nhớ rằng chức năng
if ( ! function_exists( 'compass_colophon' ) ) {
94 đã không thực hiện cuộc gọi đến
if ( ! function_exists( 'compass_colophon' ) ) {
97. Nó chỉ đơn giản là tạo một hook hành động tại vị trí của cuộc gọi
if ( ! function_exists( 'compass_colophon' ) ) {
94. Tên của móc hành động là
2
02 trong trường hợp của chúng tôi

Chức năng thực tế mà chúng tôi muốn gọi khi hành động

2
02 được kích hoạt được chỉ định bằng lệnh gọi hàm
2
05. Nó lấy tên hook của chúng ta làm tham số đầu tiên và hàm gọi lại của chúng ta làm tham số thứ hai. Hàm gọi lại đầu tiên mà chúng tôi đính kèm với hành động
2
02 là hàm
if ( ! function_exists( 'compass_colophon' ) ) {
97

Chúng tôi cũng có tùy chọn gắn nhiều chức năng gọi lại vào cùng một hook. Đây chính xác là những gì chúng tôi đã làm khi thêm chức năng

2
04 như một lệnh gọi lại khác cho hook hành động. Thứ tự các hàm được gọi được xác định bởi giá trị của tham số thứ ba được truyền cho
2
05. Điều này cho phép chúng tôi đảm bảo rằng chức năng
2
04 được thực thi sau
if ( ! function_exists( 'compass_colophon' ) ) {
97

Một lợi thế của việc sử dụng hook hành động là bạn cũng có thể dừng thực thi bất kỳ chức năng gọi lại được đính kèm nào khi một hành động được kích hoạt bằng cách chuyển tên của nó tới hàm

2
13

Tại thời điểm này, chúng tôi đã có một hook hành động được kích hoạt ở chân trang và chúng tôi đã gọi các hàm gọi lại khác nhau được gắn vào hook hành động. Về cơ bản, chúng tôi đã thực hiện một số hành động và xuất nội dung mà chúng tôi muốn đặt ở chân trang web. Những người khác cũng có thể mở chức năng của chúng tôi và đính kèm chức năng gọi lại của riêng họ vào hook hành động

Điều gì sẽ xảy ra nếu bạn chỉ muốn thay đổi một phần đầu ra của chân trang mà không ghi đè hoàn toàn hoặc gỡ bỏ chức năng ban đầu?

Chúng tôi tạo móc bộ lọc mới bằng cách sử dụng chức năng

2
15. Nó chấp nhận hai đối số ở mức tối thiểu. Cái đầu tiên là tên của hook bộ lọc, mà chúng tôi đã đặt thành
2
27 và
2
54 trong hai lệnh gọi
2
15 của chúng tôi. Đối số thứ hai là giá trị mà chúng tôi muốn lọc hoặc sửa đổi. Chúng tôi đặt nó thành mã HTML hiển thị thông tin bản quyền và tín dụng

Sau đó, chúng tôi có thể móc các chức năng của riêng mình vào các bộ lọc này. Chúng tôi làm điều này với sự trợ giúp của hàm

2
29. Hàm này chấp nhận hai tham số. Tham số đầu tiên là tên của hook bộ lọc và tham số thứ hai là tên của hàm gọi lại mà bạn muốn sử dụng để lọc giá trị

Một điều quan trọng khác cần lưu ý là các giá trị bạn chuyển đến

2
15 chỉ được lọc nếu có một lệnh gọi lại được đính kèm bằng cách sử dụng hàm
2
29. Mặt khác, giá trị được truyền dưới dạng tham số thứ hai cho
2
15 được giữ nguyên

Chúng tôi đã sử dụng tính năng này để thay đổi các khoản tín dụng nhưng giữ nguyên thông tin bản quyền ở chân trang

Các hướng dẫn khác về Wordpress

Bây giờ bạn đã biết cách thêm hành động trong WordPress, có thể bạn muốn mở rộng kỹ năng mã hóa của mình. Sau khi áp dụng bộ lọc WordPress, bạn có thể tìm hiểu các thủ thuật khác theo hướng dẫn của chúng tôi

  • Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress

    Cách làm cho email có thể nhấp được trong WordPress

    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress

    Kingsley Ubah

    15 Thg 11 2022

  • Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress

    Luồng web so với. WordPress. Bạn nên sử dụng cái nào?

    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress

    Nitish Kumar

    19 Thg 10 2022

  • Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress

    Cách lấy ID bài đăng trong WordPress

    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress

    Monty Shokeen

    20 Thg 10 2022

  • Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress

    Cách lấy hình ảnh nổi bật trong WordPress

    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress

    Monty Shokeen

    12 Thg 10 2022

  • Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress

    Cách khắc phục Widget WordPress không hoạt động hoặc hiển thị sau khi cập nhật

    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress
    Móc hành động và bộ lọc trong WordPress

    Kingsley Ubah

    15 Thg 11 2022

Suy nghĩ cuối cùng

Hiểu được sự khác biệt giữa móc hành động và bộ lọc và có thể sử dụng cả hai một cách hiệu quả sẽ giúp bạn phát triển chủ đề và plugin tốt hơn. Trên thực tế, nếu không sử dụng móc của ít nhất một loại, bạn hoàn toàn không thể viết plugin, vì cách duy nhất mã trong plugin của bạn được kích hoạt là thông qua hành động và móc lọc mà nó được gắn vào

Hướng dẫn này chỉ cho bạn cách thêm chức năng tương tự bằng cách sử dụng một chức năng, hook hành động và một hoặc nhiều hook bộ lọc, cùng với các kỹ thuật xóa chức năng khỏi hook và lời khuyên về thời điểm mỗi kỹ thuật hữu ích hơn

Ngoài việc móc các chức năng vào hành động của riêng bạn và các hook bộ lọc mà bạn tạo, bạn có thể nối chúng với các hành động và bộ lọc do WordPress cung cấp, chẳng hạn như hành động

2
60 hoặc bộ lọc
2
61

Sự khác biệt giữa bộ lọc và hook trong WordPress là gì?

Hành động có thể có bất kỳ chức năng nào và Bộ lọc có thể tồn tại để sửa đổi dữ liệu . Các hành động có thể hoặc không thể truyền bất kỳ dữ liệu nào bằng móc hành động của chúng và Bộ lọc được truyền dữ liệu để sửa đổi bằng móc của chúng. Các hành động không trả lại các thay đổi của chúng và Bộ lọc phải trả lại các thay đổi của chúng.

Hai loại hook trong WordPress là gì?

Có hai loại móc. Hành động và bộ lọc . Để sử dụng một trong hai, bạn cần viết một chức năng tùy chỉnh được gọi là Gọi lại, sau đó đăng ký nó với một hook WordPress cho một hành động hoặc bộ lọc cụ thể. Các hành động cho phép bạn thêm dữ liệu hoặc thay đổi cách thức hoạt động của WordPress.

Hành động trong WordPress là gì?

Trong quá trình phát triển WordPress, một hành động có thể được sử dụng để sửa đổi cách trang web WordPress hoạt động hoặc thêm các tính năng mới . WordPress có nhiều hành động được xác định trước cho phép các nhà phát triển thêm mã của riêng họ tại các điểm cụ thể trong lõi WordPress. Hành động là một trong những tính năng lớn giúp WordPress có thể tùy chỉnh.

Móc hành động là gì?

Action Hook là một công cụ rất hữu ích trong WordPress và chúng được sử dụng để thực hiện các chức năng (hành động) ở những vị trí cụ thể của chủ đề hoặc plugin . Nhiều chủ đề và plugin, chẳng hạn như Total, sử dụng hook hành động như một cách dễ dàng để người dùng sửa đổi đầu ra của dự án hoặc thêm mã tùy chỉnh của riêng họ.