NEXT craftinamerica.org. Base setup for headless wordpress https://www.craftinamerica.org
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

side-user.php 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. class P2P_Side_User extends P2P_Side {
  3. protected $item_type = 'P2P_Item_User';
  4. function __construct( $query_vars ) {
  5. $this->query_vars = $query_vars;
  6. }
  7. function get_object_type() {
  8. return 'user';
  9. }
  10. function get_desc() {
  11. return __( 'Users', P2P_TEXTDOMAIN );
  12. }
  13. function get_title() {
  14. return $this->get_desc();
  15. }
  16. function get_labels() {
  17. return (object) array(
  18. 'singular_name' => __( 'User', P2P_TEXTDOMAIN ),
  19. 'search_items' => __( 'Search Users', P2P_TEXTDOMAIN ),
  20. 'not_found' => __( 'No users found.', P2P_TEXTDOMAIN ),
  21. );
  22. }
  23. function can_edit_connections() {
  24. return current_user_can( 'list_users' );
  25. }
  26. function can_create_item() {
  27. return false;
  28. }
  29. function translate_qv( $qv ) {
  30. if ( isset( $qv['p2p:include'] ) )
  31. $qv['include'] = _p2p_pluck( $qv, 'p2p:include' );
  32. if ( isset( $qv['p2p:exclude'] ) )
  33. $qv['exclude'] = _p2p_pluck( $qv, 'p2p:exclude' );
  34. if ( isset( $qv['p2p:search'] ) && $qv['p2p:search'] )
  35. $qv['search'] = '*' . _p2p_pluck( $qv, 'p2p:search' ) . '*';
  36. if ( isset( $qv['p2p:page'] ) && $qv['p2p:page'] > 0 ) {
  37. if ( isset( $qv['p2p:per_page'] ) && $qv['p2p:per_page'] > 0 ) {
  38. $qv['number'] = $qv['p2p:per_page'];
  39. $qv['offset'] = $qv['p2p:per_page'] * ( $qv['p2p:page'] - 1 );
  40. }
  41. }
  42. return $qv;
  43. }
  44. function do_query( $args ) {
  45. return new WP_User_Query( $args );
  46. }
  47. function capture_query( $args ) {
  48. $args['count_total'] = false;
  49. $uq = new WP_User_Query;
  50. $uq->_p2p_capture = true; // needed by P2P_URL_Query
  51. $uq->prepare_query( $args );
  52. return "SELECT $uq->query_fields $uq->query_from $uq->query_where $uq->query_orderby $uq->query_limit";
  53. }
  54. function get_list( $query ) {
  55. $list = new P2P_List( $query->get_results(), $this->item_type );
  56. $qv = $query->query_vars;
  57. if ( isset( $qv['p2p:page'] ) ) {
  58. $list->current_page = $qv['p2p:page'];
  59. $list->total_pages = ceil( $query->get_total() / $qv['p2p:per_page'] );
  60. }
  61. return $list;
  62. }
  63. function is_indeterminate( $side ) {
  64. return true;
  65. }
  66. function get_base_qv( $q ) {
  67. return array_merge( $this->query_vars, $q );
  68. }
  69. protected function recognize( $arg ) {
  70. if ( is_a( $arg, 'WP_User' ) )
  71. return $arg;
  72. return get_user_by( 'id', $arg );
  73. }
  74. }