Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

WordPress pre_get_posts không hoạt động

Bạn có thể tìm thấy tài liệu trên pre_get_post lọc tại đây http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

Đối với tôi, có vẻ như vấn đề trên thực tế là cách bạn thiết lập post_ids mà bạn muốn truy xuất. Nếu bạn tham khảo liên kết ở trên, bạn có thể thấy các giá trị khác nhau có thể được đặt trên $query đối tượng được chuyển tới bộ lọc và post_id không phải là một trong số chúng, đó là lý do tại sao nó "hoạt động" khi bạn đặt nó và "không hoạt động" khi bạn đặt p . Cái sau dành cho một ID bài đăng, vì vậy nếu bạn chỉ muốn 100, bạn sẽ sử dụng $query->set('p', 100) . Nếu bạn muốn trả về kết quả trong đó ID bài đăng nằm trong một mảng, bạn sử dụng $query->set('post__in', array(100, 120)) . Mã SQL của bạn chỉ trả về ID, vì vậy thay vì trả về các đối tượng, bạn chỉ có thể nhận một mảng trực tiếp - tôi giả sử rằng lặp lại tiêu đề và print_r dòng chỉ đang gỡ lỗi:

// get results as a numeric array
$post_ids = $wpdb->get_results($request, ARRAY_N);
// pass post id array to $query
$query->set( 'post__in', $post_ids );

Bạn cũng có thể không nhận được kết quả nếu có các tham số xung đột hiện có được đặt trên $query . Bạn có thể kiểm tra các giá trị này bằng var_dump($query->query_vars) và đặt bất kỳ chuỗi nào có thể xung đột thành một chuỗi trống - trong trường hợp của bạn là $query->set( 'm', '' );



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tạo nhóm kết nối MySQL trong khi làm việc với NodeJS và Express?

  2. Ràng buộc KIỂM TRA trong MySQL không hoạt động

  3. Cách ánh xạ một cột MySQL JSON sang một thuộc tính thực thể Java bằng JPA và Hibernate

  4. Gửi biểu mẫu bằng <input type =button>

  5. Đếm số lượng từ phù hợp