Quan sát của bạn là đúng. Nó không phải là hiển nhiên. Ngay cả những cuốn sách của Brad và Ozh (Plugin phát triển ed. Wrox) bao gồm một lỗi trong ví dụ trên trang 267 trong chương "làm cho kho lưu trữ API của riêng bạn". Cũng giống như bạn, tôi đã dành (đã mất) thời gian để tìm vấn đề với một hai plugins trong API thay thế ...
Giải pháp: Hãy nhớ rằng rằng tham số đầu tiên trong bộ lọc WP là giá trị ban đầu truyền cho bộ lọc. Vì vậy, để nối các bộ lọc (được liệt kê bởi các plugin sử dụng api thay thế) ... dòng đầu tiên phải là:
function xiliw_altapi_information($false, $action, $args) {
$plugin_slug = plugin_basename(__FILE__);
// Check if this plugins API is about this plugin
if($args->slug != $plugin_slug) {
return $false; // var to conserve the value of previous filter of plugins list in alternate api. fixes book error not val false
}
// POST data to send to your API
$args = array(
'action' => 'plugin_information',
'plugin_name' => $plugin_slug,
'version' => $transient->checked[$plugin_slug],
'registration' => $this->registration
);//../..
Bằng cách làm bài kiểm tra này, mỗi lần danh sách các móc được gọi, chỉ có một - sự quan tâm plugin - cung cấp câu trả lời đúng để hiển thị thông tin cho cửa sổ giật gân.
Nếu có thời gian, tôi có thể sẽ sớm xuất bản một bài viết hoàn chỉnh hơn về một lớp học để quản lý API mạnh mẽ thay thế này và cách thêm nó vào một plugin riêng tư.
Nguồn
2011-09-19 19:29:58
Chỉ cần để làm cho nó rõ ràng cho tất cả mọi người, chính là mã trong cuốn sách trả về boolean 'false' trong khi mã trên trả về biến PHP '$ false'. Rất tinh tế, nhưng khác biệt rất lớn. Cảm ơn câu trả lời này + 1. – rcravens
Có một đối số tốt để đổi tên đối số đầu tiên, er, thành một cái gì đó khác với '$ false'. Tại sao không thử '$ original'? –