Hãy xem xét những điều sau đây:
Plugin của bạn được sử dụng trên mạng wordpress, sử dụng các tiền tố bảng khác nhau cho mỗi trang web. Plugin của bạn có thể chạy đồng thời trên 836 trang web khác nhau, tất cả trong cùng một cơ sở dữ liệu. wp_385677_liveshoutbox
là một tên bảng hoàn toàn hợp lý.
Plugin của bạn được cài đặt bởi người dùng có một số khái niệm về bảo mật và đã thay đổi tiền tố bảng để chặn các bot cố gắng tiêm select * from wp_users
vào hệ thống. Ngay cả khi họ tìm thấy một lỗ hổng mới, nó sẽ không hoạt động.
Sử dụng các phím tắt như tên bảng mã hóa cứng là một cách tốt để đưa sản phẩm lên và chạy, nhưng không phải là một cách tốt để phát hành nó. trong một thời gian rất ngắn, plugin sẽ có một đống bình luận "không hoạt động" về nó, trong trường hợp xấu nhất bạn sẽ phá vỡ trang web của người khác.
Nếu tôi có một truy vấn phức tạp và tôi không muốn đối phó với nỗi đau của việc viết, 'select foo from ' . $wpdb->prefix . '_mytable left join ' . $wpdb->prefix . '_mytablemeta on ' . $wpdb->prefix . '.ID = ' . $wpdb->prefix . '.meta_id ....
bạn có thể sử dụng thay thế. Ví dụ:
$query = 'select foo from %table% left join %meta% on %table%.ID = %meta%.meta_id ... ';
$change = array (
'%table%' => $wpdb->prefix . '_mytable',
'%meta%' => $wpdb->prefix . '_mytablemeta'
);
$sql = str_replace( array_keys( $change ), array_values( $change ), $query );
$results = $wpdb->get_results( $sql );
Wordpress liên tục thay đổi. Những gì "công việc" hôm nay có thể không hoạt động vào ngày mai. Đó là lý do tại sao có các hàm API. Các nhà phát triển Wordpress sẽ đảm bảo hành vi API công khai nhất quán (hoặc họ sẽ khấu hao chức năng). Nếu bạn bắt đầu sử dụng các cuộc gọi phương thức nội bộ vì nó 'nhanh hơn theo cách đó', nó thường sẽ quay lại cắn bạn. Có rất ít phím tắt thực sự trong phần mềm - chúng chỉ chuyển công việc cần thiết từ nay sang sau và như thẻ tín dụng của bạn "sau này" thường có giá cao hơn.