Có bao nhiêu loại hook trong WordPress?

Các nhà phát triển WordPress có thể muốn tùy chỉnh trực tiếp trình tạo trang web phổ biến này, nhưng cách tiếp cận đó tạo ra những vấn đề đau đầu về bảo trì liên tục. May mắn thay, có một cách rõ ràng để mở rộng chức năng. thông qua các hook, hành động và bộ lọc của WordPress

Qua

Tahir Shahzad

Tahir là một nhà phát triển web toàn diện với nhiều năm kinh nghiệm về cơ sở dữ liệu và phát triển web, mặt trước và mặt sau. Trong ngăn xếp của Tahir, anh ấy cảm thấy thoải mái và quen thuộc nhất với MySQL, PostgreSQL và Apache Lucene để lưu trữ dữ liệu. Đối với giao diện và trải nghiệm người dùng, Tahir thành thạo PHP (Core, Laravel và WordPress) và JavaScript (jQuery, React). Anh ấy đam mê lĩnh vực của mình và hoan nghênh các dự án mang lại cơ hội phát triển cá nhân và chuyên nghiệp

Móc trong WordPress cho phép các nhà phát triển dễ dàng liên kết mã của riêng họ với cơ sở mã, chủ đề và plugin cốt lõi của WordPress. Trong bài viết này, chúng ta sẽ khám phá hook là gì, tìm hiểu các loại hook khác nhau và xem xét một số ví dụ về hook hoạt động

Định nghĩa thuật ngữ

Hook là một thuật ngữ chung trong WordPress dùng để chỉ những nơi bạn có thể thêm mã của riêng mình hoặc thay đổi những gì WordPress đang thực hiện hoặc xuất ra theo mặc định. Hai loại móc tồn tại trong WordPress. hành động và bộ lọc

Một Action trong WordPress là một hook được kích hoạt vào thời điểm cụ thể khi WordPress đang chạy và cho phép bạn thực hiện một hành động. Điều này có thể bao gồm những thứ như tạo tiện ích khi WordPress đang khởi chạy hoặc gửi Tweet khi ai đó xuất bản bài đăng

Bộ lọc trong WordPress cho phép bạn lấy và sửa đổi dữ liệu WordPress trước khi nó được gửi đến cơ sở dữ liệu hoặc trình duyệt. Một số ví dụ về bộ lọc sẽ bao gồm tùy chỉnh cách hiển thị đoạn trích hoặc thêm một số mã tùy chỉnh vào cuối bài đăng trên blog

Lúc đầu, có thể hơi khó hiểu để xác định xem thứ gì đó là một hành động hay một bộ lọc. Sự khác biệt quan trọng là khi bạn làm việc với bộ lọc, bạn sẽ nhận được một số dữ liệu và sau đó, khi kết thúc hàm, bạn phải trả lại dữ liệu đó. Mặt khác, với một hành động, bạn không nhận và sửa đổi dữ liệu, bạn chỉ được cung cấp một vị trí trong thời gian chạy WordPress nơi bạn có thể thực thi mã của mình

đọc liên quan. Quy trình làm việc SVG nội tuyến WordPress hoàn hảo

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

WordPress Codex có hai trang quan trọng có thể giúp bạn định hướng bản thân với những hook nào có sẵn trong WordPress

GHI CHÚ. Tại thời điểm viết bài, có một chút chuyển đổi tài liệu về hook từ trang web Codex sang Code Reference. Do đó, bạn có thể tìm thấy các móc được liệt kê trong Codex, nhưng không được ghi lại. Bạn sẽ có thể tìm thấy một số tài liệu về tất cả các hook nếu bạn tìm kiếm chúng trong Code Reference, tuy nhiên, nó không có bất kỳ trang hiện tại nào như Codex nơi tất cả các hook được nhóm vào một nơi

Trang Tham khảo hành động WordPress có sẵn các hành động được liệt kê theo các danh mục sau

  • Hành động chạy trong một yêu cầu điển hình
  • Hành động chạy trong yêu cầu trang quản trị
  • Hành động Đăng, Trang, Tệp đính kèm và Danh mục (Quản trị viên)
  • Các hành động Nhận xét, Ping và Trackback
  • Hành động danh sách blog
  • Hành động nguồn cấp dữ liệu
  • Hành động mẫu
  • hành động hành chính
  • Hành động Widget “Ngay bây giờ” trên Bảng điều khiển

Codex cũng có một trang Tham khảo bộ lọc tương tự, trang này liệt kê theo các danh mục sau

  • Bộ lọc Bài đăng, Trang và Tệp đính kèm (Tải lên)
  • Bình luận, Trackback, và Bộ lọc Ping
  • Bộ lọc danh mục và thuật ngữ
  • Bộ lọc liên kết
  • Bộ lọc ngày và giờ
  • Bộ lọc tác giả và người dùng
  • Bộ lọc danh sách blog
  • Thông tin blog và bộ lọc tùy chọn
  • Bộ lọc văn bản chung
  • Bộ lọc quản trị
  • Bộ lọc Rich Text Editor
  • Bộ lọc mẫu
  • Bộ lọc Đăng ký & Đăng nhập
  • Bộ lọc chuyển hướng/viết lại
  • Bộ lọc WP_Query
  • Bộ lọc phương tiện
  • Bộ lọc WordPress nâng cao
  • tiện ích
  • Thanh quản trị

Nhiều móc lọc trong số này được tách thành các danh mục con. Cơ sở dữ liệu đọc và cơ sở dữ liệu ghi. Điều này phụ thuộc vào việc bạn đang đọc từ cơ sở dữ liệu trước khi hiển thị trên trang hoặc chỉnh sửa màn hình hay bạn đang viết mã trước khi lưu dữ liệu vào cơ sở dữ liệu

Làm việc với các hook trong WordPress bắt đầu bằng việc tìm ra hook nào bạn cần để gắn mã của mình vào và sau đó viết mã để sửa đổi dữ liệu bạn cần hoặc chạy bất kỳ hành động nào bạn cần

Nếu bạn gặp khó khăn hoặc không chắc nên sử dụng móc nào, bạn thường có thể tìm ra nó bằng cách tìm kiếm thứ gì đó như. “Hành động WordPress cho [bất cứ điều gì bạn muốn nối vào]. ”   WordPress StackExchange cũng có một số kết quả với các câu hỏi như thế này

Cách thêm và xóa các chức năng của riêng bạn

Nếu bạn muốn kết nối các chức năng của riêng mình, quá trình này khá đơn giản. Trước tiên bạn cần biết một số thông tin. Đối với các hành động, bạn sẽ muốn biết tên của móc cũng như thời điểm chính xác nó chạy. Đối với các bộ lọc, bạn cũng cần biết tên của móc, nhưng bạn cũng muốn biết giá trị nào bạn sẽ nhận và phải trả lại. Thông tin cuối cùng bạn cần là tên của chức năng nơi bạn có tất cả mã của mình

Làm thế nào để kết nối vào một hành động

add_action( $hook, $function_to_add, $priority, $accepted_args );

Các tham số bắt buộc của hàm add_action là hook và hàm add. Mức độ ưu tiên là một giá trị số nguyên tùy chọn dựa trên thang điểm từ 1 đến 999 để xác định mức độ ưu tiên của thứ tự cho các hàm được liên kết với hook cụ thể đó. Ưu tiên cao hơn có nghĩa là nó chạy sau, ưu tiên thấp hơn có nghĩa là sớm hơn. Tham số cuối cùng ít được sử dụng hơn và dùng khi bạn cần chuyển hoặc chấp nhận nhiều đối số

Cách kết nối vào Bộ lọc

add_filter( $tag, $function_to_add, $priority, $accepted_args );

add_filter hoạt động giống như add_action. Bạn cũng sẽ phải cẩn thận vì đôi khi hook tồn tại dưới dạng cả hành động và bộ lọc hoặc bộ lọc và chức năng. Bạn sẽ thấy sự khác biệt thực sự với hàm thực tế mà bạn gọi

Hãy nhớ rằng, đối với một bộ lọc, hàm_to_add vừa nhận một giá trị vừa phải trả về giá trị đó khi kết thúc hàm. Mặt khác, các hành động chỉ cần chạy mã chúng cần và không trả về giá trị

Cách Tháo móc khỏi Hành động và Bộ lọc

Để loại bỏ một cái móc là khá đơn giản. Sử dụng chức năng remove_action hoặc remove_filter cùng với tên của hook, chức năng và mức độ ưu tiên. Mức độ ưu tiên là tùy chọn và hữu ích nếu bạn phải mở một chức năng được nối nhiều lần và bạn chỉ muốn xóa một lần xuất hiện cụ thể của chức năng đó

remove_action( $tag, $function_to_remove, $priority );
remove_filter( $tag, $function_to_remove, $priority );

Bây giờ, chúng ta đã xem xét những kiến ​​thức cơ bản về cách các hàm được nối và không được nối, hãy xem một vài ví dụ thực tế về một số móc khác nhau đang hoạt động

Ví dụ về Móc WP

Hơn 200 hook tồn tại trong WordPress. Dưới đây, bạn sẽ tìm thấy một vài ví dụ về các móc phổ biến được sử dụng

Đăng ký Menu tùy chỉnh trong Quản trị viên

function register_my_custom_menu_page() {
 add_menu_page( 'custom menu title', 'custom menu', 'manage_options', 'myplugin/myplugin-admin.php', '', 'dashicons-admin-site', 6 );
}
add_action( 'admin_menu', 'register_my_custom_menu_page' );

Trong ví dụ trên, bạn có thể thấy hàm register_my_custom_menu_page được nối vào móc hành động admin_menu. Điều này cho phép bạn chạy mã khi menu quản trị đang được tạo. Điều này được sử dụng phổ biến nhất để thêm một liên kết menu tùy chỉnh cho plugin hoặc chủ đề

đọc liên quan. Tạo loại bài đăng tùy chỉnh WordPress đầu tiên của bạn

Thay đổi độ dài đoạn trích

function excerpt_length_example( $words ) {
 return 15;
}
add_filter( 'excerpt_length', 'excerpt_length_example' );

Trong ví dụ này, chúng tôi đang sử dụng bộ lọc Exciter_length, cung cấp cho chúng tôi một số nguyên xác định độ dài được sử dụng với the_excerpt(). Nếu không chắc chắn về giá trị nào được chuyển đến bộ lọc, bạn có thể tìm kiếm mã lõi WordPress cho apply_filters( ‘filter_name’ và tìm hiểu sâu hơn về những gì đang diễn ra với bộ lọc đó

Kết nối với xuất bản bài viết

function publish_post_tweet($post_ID) {
  global $post;
  // Code to send a tweet with post info
}
add_action('publish_post', 'publish_post_tweet');

Trong ví dụ giả ở trên, bạn có thể thấy rằng chúng ta đang nối vào một hành động có tên là “publish_post”, hành động này sẽ chạy khi một bài đăng được xuất bản. Bạn có thể sử dụng điều này để làm điều gì đó như gửi một tweet chứa thông tin về bài đăng đã xuất bản

Mã thực tế cho việc này phức tạp hơn mức chúng tôi có đủ chỗ để trình bày, nhưng đây là một ví dụ điển hình về một hành động mà bạn có thể chạy khi một bài đăng được xuất bản

Kết nối với Khởi chạy tiện ích con

function create_my_widget() {
 register_sidebar(array(
 'name' => __( 'My Sidebar', 'mytheme' ), 
 'id' => 'my_sidebar',
 'description' => __( 'The one and only', 'mytheme' ),
 ));
}
add_action( 'widgets_init', 'create_my_widget' );

Tạo tiện ích là một hành động rất đơn giản và phổ biến để thêm vào chủ đề hoặc plugin. Khi bạn làm như vậy, bạn phải nối vào hành động widget_init. Móc này cho phép bạn chạy mã của mình khi các tiện ích đang được tạo trong WordPress, vì vậy đây là móc hoàn hảo để thêm các tiện ích của riêng bạn cùng một lúc

Kết nối với các kiểu và tập lệnh giao diện người dùng

________số 8

Đây là một hook thường được sử dụng và là một hook mà bạn đã học khá sớm trong quá trình phát triển WordPress. Nó cho phép bạn tạo biểu định kiểu URL và tệp JavaScript ở giao diện người dùng của bạn. Đây là phương pháp ưa thích để liên kết với CSS và JS, thay vì mã hóa cứng các liên kết trong tiêu đề chủ đề của bạn

Đào sâu hơn vào móc

Bài viết này đóng vai trò là phần giới thiệu rất cơ bản để làm việc với các hook trong WordPress. Nếu bạn muốn tìm hiểu sâu hơn, tôi khuyên bạn nên xem khóa học của tôi về Móc nối WordPress – Hành động và Bộ lọc, hiện đã có tại Treehouse

Để cải thiện kỹ năng mã hóa của bạn, hãy xem bản dùng thử miễn phí 7 ngày của Treehouse

BẮT ĐẦU NGAY BÂY GIỜ

Học với Treehouse chỉ 30 phút mỗi ngày có thể dạy cho bạn những kỹ năng cần thiết để đạt được công việc mà bạn hằng mơ ước

Bắt đầu

  • mã số
  • báo chí

18 phản hồi cho “Tìm hiểu các loại hook trong WordPress”

  1. Deon vào ngày 2 tháng 5 năm 2018 lúc 2. 12 giờ trưa anh ấy nói

    Xin chào tất cả mọi người, tôi thực sự rất vui khi được truy cập vào trang
    trang web này, nó bao gồm những Thông tin vô giá.

    đăng nhập để trả lời

  2. Gaurav Kumar vào ngày 19 tháng 11 năm 2017 lúc 2. 24 giờ sáng nói

    xin chào, chúng tôi có thể nối trực tiếp trang cài đặt của tôi từ một cài đặt chủ đề khác mà không cần chạm vào bất kỳ mã nào không

    đăng nhập để trả lời

  3. Cổng thông tin hôn nhân vào ngày 8 tháng 11 năm 2017 lúc 1. 14 giờ chiều anh ấy nói

    Đọc xong tôi nghĩ nó thực sự khai sáng.
    Tôi đánh giá cao việc bạn đã dành thời gian và công sức để tổng hợp
    bài viết này. Một lần nữa, tôi thấy mình dành
    lượng thời gian đáng kể cho cả việc đọc và để lại nhận xét.

    Nhưng vậy thì sao, nó vẫn đáng giá

    đăng nhập để trả lời

  4. Sushil Adhikari vào ngày 24 tháng 7 năm 2016 lúc 11. 32 giờ chiều anh ấy nói

    Xin chào Zac Gordon,

    Cảm ơn bạn cho hướng dẫn tuyệt vời này. Nghi ngờ của tôi về cái móc là

    Lợi thế của việc sử dụng hook over xác định hàm với if (. function_exist() ) trong khi tùy chỉnh chức năng gốc trên chủ đề con. Đây là ví dụ

    Mã này trên các hàm cha. mẫu php

    nếu (. function_exist( ‘your_function_name’ ) ).
    function your_function_name() {
    //mã ở đây

    }
    endif;

    Để ghi đè lên chủ đề con, tôi chỉ cần xác định chức năng này và thực hiện các thay đổi

    Nhưng trong khi tôi sử dụng hook trên cùng một phiên bản, trước tiên tôi cần xóa hook và viết mã tùy chỉnh của mình

    Tôi mong đợi phản hồi của bạn

    Thanks

    đăng nhập để trả lời

  5. Ruby Rails vào ngày 23 tháng 3 năm 2016 lúc 11. 59 chiều anh ấy nói

    Cảm ơn đã phân loại các bộ lọc WordPress, nó giúp tôi dễ dàng tìm kiếm và học hỏi. Tôi nghĩ sẽ tốt hơn nếu bạn có các ví dụ mã cho từng bộ lọc 😀

    đăng nhập để trả lời

  6. Martin vào ngày 28 tháng 2 năm 2016 lúc 7. 16 giờ sáng nói

    tài nguyên lớn. Sẽ đào sâu hơn

    đăng nhập để trả lời

  7. jahid vào ngày 19 tháng 2 năm 2016 lúc 5. 53 giờ sáng đã nói

    Bài viết hay, tôi cần cách triển khai hoặc viết hook và các hàm có điều kiện trong plugin soạn sẵn. Tôi đã tải xuống plugin từ plugin soạn sẵn, tôi không biết cách chuyển sang phát triển plugin khi mới bắt đầu phát triển plugin WP bằng cách sử dụng plugin soạn sẵn. tôi cần quy trình từng bước để triển khai mã (móc & chức năng) trong bản tóm tắt plugin theo yêu cầu ví dụ

    cám ơn bạn

    đăng nhập để trả lời

    • Cầu Faye vào ngày 22 tháng 2 năm 2016 lúc 1. 24 giờ sáng nói

      Chào bạn. Đây sẽ là một câu hỏi hay để hỏi trong Cộng đồng Treehouse, nơi giáo viên và học sinh của chúng tôi luôn sẵn lòng giúp đỡ và chia sẻ phản hồi của họ

      đăng nhập để trả lời

  8. Ashley vào ngày 12 tháng 2 năm 2016 lúc 1. 19 giờ tối anh ấy nói

    Điều này đã được rất hữu ích, cảm ơn. Cả tuần nay tôi đã vắt kiệt các tế bào não của mình để cố gắng tìm ra cách thêm các hành động vào các câu móc hiện có. Tài liệu về chủ đề gốc mà tôi đang viết một chủ đề con khá nghèo nàn, tôi bị sốc vì đây là một nhà phát triển có uy tín. Tôi cũng đã tham gia khóa học WordPress – hooks trên treehouse của bạn. Cuối cùng cũng đến được một nơi nào đó. Vẫn cần thực hành nhiều hơn, ngoài những thứ bạn đã đề cập, bạn có bất kỳ tài nguyên/bài viết nào khác mà bạn muốn giới thiệu không? . Xin hãy giữ họ đến

    đăng nhập để trả lời

    • Cầu Faye vào ngày 16 tháng 2 năm 2016 lúc 1. 59 giờ sáng anh ấy nói

      Chào Ashley. Thật tuyệt khi biết rằng bạn đã được hưởng lợi từ bài đăng và bạn đang học hỏi với chúng tôi. Nếu bạn muốn xem tất cả nội dung WordPress mà chúng tôi có trên blog, hãy tìm kiếm “WordPress” và chúng tôi sẽ lọc các bài đăng cho bạn. Kịp các công việc tuyệt vời. 🙂

      đăng nhập để trả lời

  9. luckyali vào ngày 30 tháng 10 năm 2015 lúc 11. 19 giờ sáng anh ấy nói

    Chỉ cần giải thích tuyệt vời, đã giúp rất nhiều

    đăng nhập để trả lời

  10. Alaister vào ngày 24 tháng 9 năm 2015 lúc 9. 20 giờ tối anh ấy nói

    Bài viết hay về Hooks. Đây là lần đầu tiên tôi đọc hooks. Tôi sẽ cố gắng viết plugin đầu tiên

    đăng nhập để trả lời

  11. Emma vào ngày 6 tháng 9 năm 2015 lúc 9. 55 giờ sáng đã nói

    Tôi hài lòng vì bạn đã chia sẻ thông tin hữu ích này với chúng tôi. Hãy giữ cho chúng tôi được cập nhật như thế này

    đăng nhập để trả lời

  12. Kristi guerrero vào ngày 12 tháng 2 năm 2015 lúc 6. 02 giờ sáng đã nói

    WordPress vẫn tuyệt vời để sử dụng. Hơn 17.00 plugin và kỹ thuật SEO tuyệt vời được sử dụng. Các CMS khác đang chiến đấu tốt với nó. Nhưng không có CMS nào khác có thể dễ dàng sử dụng như WordPress

    đăng nhập để trả lời

  13. phim sex va chat luong miễn phí 11 Tháng 2 2015 lúc 1. 04 giờ chiều anh ấy nói

    Đó thực sự là một mẩu thông tin hay và hữu ích. Tôi hài lòng vì bạn đã chia sẻ thông tin hữu ích này với chúng tôi. Hãy giữ cho chúng tôi được cập nhật như thế này. Cảm ơn bạn đã chia sẻ

    đăng nhập để trả lời

  14. Bhumi vào ngày 10 tháng 2 năm 2015 lúc 3. 40 giờ sáng đã nói

    Cảm ơn nhiều. Nó giúp rất nhiều

    đăng nhập để trả lời

  15. Signmakers Sheffield vào ngày 5 tháng 2 năm 2015 lúc 4. 46 chiều anh ấy nói

    Sử dụng mã Widget tôi nghĩ

    đăng nhập để trả lời

  16. Simon Lancancaster vào ngày 5 tháng 2 năm 2015 lúc 4. 44 chiều anh ấy nói

    Điều này đã thực sự hữu ích. Tôi đang cố gắng viết phần bổ trợ cho người tạo bảng hiệu ở sheffield. Đây có thể là chìa khóa

    Các loại hook hành động trong WordPress là gì?

    Hai loại móc tồn tại trong WordPress. hành động và bộ lọc. Một Action trong WordPress là một hook được kích hoạt vào thời điểm cụ thể khi WordPress đang chạy và cho phép bạn thực hiện một hành động. Điều này có thể bao gồm những thứ như tạo tiện ích khi WordPress đang khởi chạy hoặc gửi Tweet khi ai đó xuất bản bài đăng

    Khái niệm WordPress & hooks là gì?

    Móc WordPress là một tính năng cho phép bạn thao tác một quy trình mà không cần sửa đổi tệp trên lõi WordPress . Một hook có thể được áp dụng cho cả action (action hook) và filter (filter hook). Tìm hiểu về hook là điều cần thiết cho bất kỳ người dùng WordPress nào.

    Sự khác biệt giữa móc hành động và móc lọc là gì?

    Sự khác biệt chính giữa Actions Hook và Filters Hook là Actions Hook luôn thô . Hành động WordPress có nghĩa là Thực thi để phản hồi Sự kiện WordPress và không yêu cầu bất kỳ loại dữ liệu nào bắt buộc. Trong khi Filters Hook vẫn cần dữ liệu.

    Móc và bộ lọc WordPress là gì?

    Hook cho phép nhà phát triển thay đổi hoặc mở rộng chức năng của WordPress mà không cần phải tự chỉnh sửa mã lõi của WordPress. Chúng thực hiện điều này bằng cách chạy các hành động và bộ lọc, là các hàm PHP thực hiện các tác vụ và thay đổi dữ liệu . Chúng được sử dụng rộng rãi bởi các nhà phát triển plugin và chủ đề.