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

  • Plugin updates mislukken, bijwerken mislukt melding

    Recentelijk kregen we op een website bij het updaten van WordPress de melding “De doelmap voor het streamen van bestanden bestaat niet of er kan niet naar worden geschreven”. Bij...
  • 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...
  • Je WordPress website sneller maken

    Een WordPress website kan behoorlijk snel zijn: WordPress is niet zozeer de vertragende factor. Wat de snelheid vaak drukt is een zeer configureerbaar theme, of een combinatie van een theme...
  • Recent posts widget filteren op categorie

    Soms wil je in de recent posts widget alleen posts laten zien uit een bepaalde categorie. Dit is heel eenvoudig te doen met een paar regels code. Vul bij 6...

Laat een reactie achter