NEXT craftinamerica.org. Base setup for headless wordpress https://www.craftinamerica.org
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. class P2P_Query_User {
  3. static function init() {
  4. add_action( 'pre_user_query', array( __CLASS__, 'pre_user_query' ), 20 );
  5. }
  6. static function pre_user_query( $query ) {
  7. global $wpdb;
  8. $r = P2P_Query::create_from_qv( $query->query_vars, 'user' );
  9. if ( is_wp_error( $r ) ) {
  10. $query->_p2p_error = $r;
  11. $query->query_where = " AND 1=0";
  12. return;
  13. }
  14. if ( null === $r )
  15. return;
  16. list( $p2p_q, $query->query_vars ) = $r;
  17. $map = array(
  18. 'fields' => 'query_fields',
  19. 'join' => 'query_from',
  20. 'where' => 'query_where',
  21. 'orderby' => 'query_orderby',
  22. );
  23. $clauses = array();
  24. foreach ( $map as $clause => $key )
  25. $clauses[$clause] = $query->$key;
  26. $clauses = $p2p_q->alter_clauses( $clauses, "$wpdb->users.ID" );
  27. if ( 0 !== strpos( $clauses['orderby'], 'ORDER BY ' ) )
  28. $clauses['orderby'] = 'ORDER BY ' . $clauses['orderby'];
  29. foreach ( $map as $clause => $key )
  30. $query->$key = $clauses[ $clause ];
  31. }
  32. }