Code snippets ultimate member

Als je wilt zoeken binnen WordPress users, of in Ultimate Member members, (wat op hetzelfde neerkomst), zou je denken dat dit makkelijk gedaan kan worden met een meta_query, of met de user zoek functionaliteit dat zit ingebouwd in WordPress.

Dat is niet het geval! Terwijl ik bezig was hiervoor code te schrijven kwam ik erachter dat er geen gebruikers gevonden worden op username. Even wat verder zoekende kwam ik er achter dat de query die WordPress genereert alleen in de wp_usermeta tabel zoekt. En de username is onderdeel van de wp_users tabel.

Aan de andere kant, als je zoekt met de “search” query, zal WordPress alleen zoeken in de wp_users tabel, dus zal je geen users vinden op voornaam of achternaam.

Om dit op te lossen, moet je de twee combineren. In het voorbeeld hieronder bevat de totalusers variabele de lijst users waarbij $str voorkomt in ofwel username, user_nicename, user_email, firstname, of lastname. Je kan dit naar wens uitbreiden natuurlijk.

//search usertable
$wp_user_query = new WP_User_Query(
  array(
    'search' => "*{$str}*",
    'search_columns' => array(
    'user_login',
    'user_nicename',
    'user_email',
  ),

) );
 $users = $wp_user_query->get_results();

//search usermeta
 $wp_user_query2 = new WP_User_Query(
  array(
    'meta_query' => array(
    'relation' => 'OR',
      array(
        'key' => 'first_name',
        'value' => $str,
        'compare' => 'LIKE'
      ),
    array(
        'key' => 'last_name',
        'value' => $str,
        'compare' => 'LIKE'
      )
    )
  )
 );

$users2 = $wp_user_query2->get_results();

$totalusers_dup = array_merge($users,$users2);

$totalusers = array_unique($totalusers_dup, SORT_REGULAR);

Related Articles

  • Extra velden toevoegen aan je custom post type

    Als je goed hebt nagedacht over je website structuur, dan heb je waarschijnlijk al een paar custom post types gedefinieerd, zoals testimonials, klanten, boeken, producten. Maar deze post types hebben...
  • WordPress functionaliteit gebruiken in een los php bestand

    Voor het ontwikkelen van Really Simple SSL wilde ik een deactivatie optie inbouwen in de plugin, voor het geval je niet meer in de WordPress back-end zou kunnen. Als WordPress...
  • Paginatie functies voor je maatwerk WordPress thema

    Als je je eigen WordPress thema aan het bouwen bent, of een bestaand thema aan het aanpassen, en je wilt paginatie toevoegen, dan kan je wel eens rare resultaten krijgen....
  • Emails sturen in WordPress

    Voor een eenvoudig contactformulier kan ja het beste een plugin gebruiken. Contact form 7 bijvoorbeeld. Maar soms wil je wat meer maatwerk: een met een cronjob gegenereerde email (bijvoorbeeld elke...

Laat een reactie achter