Guest User

Untitled

a guest
Jan 20th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.26 KB | None | 0 0
  1. $args = array (
  2. 'post_type' => 'page',
  3. 'meta_key' => 'someMetaKeyName',
  4. );
  5.  
  6. // The Query
  7. $query = new WP_Query( $args );
  8.  
  9. global $wpdb;
  10. $pt = 'clients';
  11. $mk = 'trainerid';
  12. $mv = $pid;
  13. $mk1 = 'email';
  14. $mk2 = 'phone';
  15. $mk3 = 'gender';
  16. $mk4 = 'dob';
  17. $mk5 = 'photo';
  18. $mk6 = 'registrationts';
  19. $mk7 = 'activationts';
  20. $ord = 'p.post_name ASC';
  21.  
  22. $sql = "
  23. SELECT p.ID, p.post_title AS fullname, pm1.meta_value AS email, pm2.meta_value AS phone, pm3.meta_value AS gender, pm4.meta_value AS dob, pm5.meta_value AS photo, pm6.meta_value AS regts, pm7.meta_value AS actemailts
  24. FROM {$wpdb->posts} p
  25. LEFT JOIN {$wpdb->postmeta} pm ON pm.post_id = p.ID
  26. AND pm.meta_key = '{$mk}'
  27. LEFT JOIN {$wpdb->postmeta} pm1 ON pm1.post_id = p.ID
  28. AND pm1.meta_key = '{$mk1}'
  29. LEFT JOIN {$wpdb->postmeta} pm2 ON pm2.post_id = p.ID
  30. AND pm2.meta_key = '{$mk2}'
  31. LEFT JOIN {$wpdb->postmeta} pm3 ON pm3.post_id = p.ID
  32. AND pm3.meta_key = '{$mk3}'
  33. LEFT JOIN {$wpdb->postmeta} pm4 ON pm4.post_id = p.ID
  34. AND pm4.meta_key = '{$mk4}'
  35. LEFT JOIN {$wpdb->postmeta} pm5 ON pm5.post_id = p.ID
  36. AND pm5.meta_key = '{$mk5}'
  37. LEFT JOIN {$wpdb->postmeta} pm6 ON pm6.post_id = p.ID
  38. AND pm6.meta_key = '{$mk6}'
  39. LEFT JOIN {$wpdb->postmeta} pm7 ON pm7.post_id = p.ID
  40. AND pm7.meta_key = '{$mk7}'
  41. WHERE pm.meta_value = '{$mv}'
  42. AND p.post_type = '{$pt}'
  43. AND p.post_status NOT IN ('draft','auto-draft')
  44. ORDER BY {$ord}
  45. ";
  46.  
  47. $clients = $wpdb->get_results( $wpdb->prepare( $sql ), OBJECT );
  48.  
  49. if(!function_exists('add_query_meta')) {
  50. function add_query_meta($wp_query = "") {
  51.  
  52. //return In case if wp_query is empty or postmeta already exist
  53. if( (empty($wp_query)) || (!empty($wp_query) && !empty($wp_query->posts) && isset($wp_query->posts[0]->postmeta)) ) { return $wp_query; }
  54.  
  55. $sql = $postmeta = '';
  56. $post_ids = array();
  57. $post_ids = wp_list_pluck( $wp_query->posts, 'ID' );
  58. if(!empty($post_ids)) {
  59. global $wpdb;
  60. $post_ids = implode(',', $post_ids);
  61. $sql = "SELECT meta_key, meta_value, post_id FROM $wpdb->postmeta WHERE post_id IN ($post_ids)";
  62. $postmeta = $wpdb->get_results($sql, OBJECT);
  63. if(!empty($postmeta)) {
  64. foreach($wp_query->posts as $pKey => $pVal) {
  65. $wp_query->posts[$pKey]->postmeta = new StdClass();
  66. foreach($postmeta as $mKey => $mVal) {
  67. if($postmeta[$mKey]->post_id == $wp_query->posts[$pKey]->ID) {
  68. $newmeta[$mKey] = new stdClass();
  69. $newmeta[$mKey]->meta_key = $postmeta[$mKey]->meta_key;
  70. $newmeta[$mKey]->meta_value = maybe_unserialize($postmeta[$mKey]->meta_value);
  71. $wp_query->posts[$pKey]->postmeta = (object) array_merge((array) $wp_query->posts[$pKey]->postmeta, (array) $newmeta);
  72. unset($newmeta);
  73. }
  74. }
  75. }
  76. }
  77. unset($post_ids); unset($sql); unset($postmeta);
  78. }
  79. return $wp_query;
  80. }
  81. }
  82.  
  83. $args = array (
  84. 'post_type' => 'page',
  85. 'meta_key' => 'someMetaKeyName',
  86. );
  87.  
  88. // The Query
  89. $query = new WP_Query( $args );
  90. if($wp_query->have_posts()) {
  91. $wp_query = add_query_meta($wp_query);
  92. $i = 0;
  93. while($wp_query->have_posts()) {
  94. $wp_query->the_post();
  95. $post_id = get_the_id();
  96.  
  97. //Get $someMetaKeyName in current post
  98. foreach($wp_query->posts[$i]->postmeta as $k => $v) {
  99. switch($v->meta_key) {
  100. case('someMetaKeyName') : {
  101. $someMetaKeyName = $v->meta_value;
  102. break;
  103. }
  104. }
  105. }
  106.  
  107. //Your Code here
  108. //Example
  109. echo isset($someMetaKeyName) ? '<h3>'.$someMetaKeyName.'</h3>' : '';
  110.  
  111.  
  112. $i++;
  113. }
  114. }
  115.  
  116. $args = array(
  117. 'post_type' => 'page',
  118. 'meta_key' => 'someMetaKeyName',
  119. 'meta_query' => array(
  120. array(
  121. 'key' => 'someMetaKeyName',
  122. 'type' => 'CHAR',
  123. ),
  124. ),
  125. );
  126.  
  127. $query = new WP_Query( $args );
Add Comment
Please, Sign In to add comment