Wordpress hook

2 hook của WordPress “save_post” và “publish_post” – chọn cái nào ?

Có những thứ khi nó quá nhiều lại đâm ra rối ren, có hai cái hook của WordPress đều trả về cùng kết quả lại có cái tên khác nhau nhưng lại được sử dụng giống y chang nhau !

Hôm nay Jam phải làm việc với 3 plugin cùng lúc, Auto Post Thumbnail, Image teleporter và Image Watermark, với một yêu cầu rất chi là khó như sau:

+ Làm sao để 3 plugin này chạy lần lượt khi đăng bài, Image teleporter lấy ảnh của thiên hạ về một cách tự động, sau đó đóng dấu bản quyền với Image Watermark và tự động đặt ảnh Thumbnail với Auto Post Thumbnail ?

Lều lều ! Giờ mới là cái căng thẳng, thứ nhất thằng Auto Post Thumbnail hook vào hook Save Post trong khi Image Teleporter hook vào phần Publish_post, hai thằng này chạy trái chiều như vậy thì sao mà có thể lần lượt được, đặc tính của hai thằng này y chang nhau nhưng có tí ti khác nhau như sau:

+ Save_Post là hook được khởi chạy khi bài đăng được lưu lại, dưới dạng nháp hoặc đăng bài, nói chung là cứ lưu lại là nó được gọi, plugin cần phải xác định xem nó lưu vào và Post Status là bản nháp hay tự động lưu hay là đăng bài luôn.

+ Publish_post được khởi chạy khi bài đăng được đăng hoặc bản nháp chuyển sang bài đăng

Cả hai hook này đều trả về Post ID để chúng ta làm việc, tuy nhiên nếu muốn xếp lần lượt chúng chạy theo một chuỗi thì cần phải chỉnh lại như sau:

+ Chúng sẽ hook cùng vào một hook, cái nào cũng okey, từ Save_post cho tới Publish_post, thế nào cũng xong !

+ Cài đặt thuộc tính của Hook sao cho chúng chạy lần lượt, ví dụ add_action(‘function’, 10, 1); và add_action(‘function’, 12, 1 ); thì cái 12 sẽ chắc chắn hành động sau, số càng to thì càng đứng sau !

Còn về phần ảnh đóng dấu sau khi tự kéo về, cái này thì thực tế lại không liên quan tới các hook trên mà sẽ hook vào phần tải file lên, cái đó sẽ xuất hiện trong một bài viết khác của Jam nha !

CHúc các bạn ngủ ngon !

TÁC GIẢ:

Tôi là Jam, thâm niên 7 năm thiết kế website và làm SEO. Hãy theo dõi blog của tôi để nhận được nhiều chia sẻ thú vị xung quanh chủ đề công nghệ.

Có 2 bình luận !

  1. Cho mÌnh hỏi ngoài lề chút bạn ơi.
    Mình hay sử dụng wpdb để thao tác với db. Có cách nào lấy ID của bài viết trước khi dùng wpdb->insert không?
    ví dụ mình muốn postname kiểu dạng sau: /bai-viet-test-{ID}/
    trong đó ID là insert ID được thực hiện trước khi dùng wpdb->insert?

    1. Mình đang hiểu là bạn muốn hiển thị ID của bài đăng trước cả lúc Insert đúng không ? Chưa insert vào thì sao có ID được bạn ? Có cách là insert vào rồi lấy ID ra để dùng hàm Update lại cái vừa insert !
      Cách nữa, nếu bạn đang làm việc trên WordPress thì bạn có thể cấu hình trong đường dẫn tĩnh bằng cách thêm %%Post_id%% vào trong cấu hình Permalink !
      Chúc bạn thành công !

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *