提问者:小点点

如何从数据库中的wp_usermeta表中获取值?


I make one custom registration form and add more field address, mobile Number but all subscriber make table his but how to get value address column in my table,



                <?php
            global $wpdb;

lt;//gt;$authors=$wpdb-gt;get_results(“SELECT*from$wpdb-gt;USERMETA WHERE meta_key='wp_capabilities'且meta_value='a:1:{s:10:”subscriber“;b:1;}‘”);

  $mysqli=NEW mysqli('localhost','root','','wp1');
  $sql = "SELECT wp_users.ID, wp_users.user_nicename, wp_users.user_email,wp_users.user_registered FROM wp_users INNER JOIN wp_usermeta 
  ON wp_users.ID = wp_usermeta.user_id 
  WHERE wp_usermeta.meta_key = 'wp_capabilities' 
  AND wp_usermeta.meta_value LIKE '%subscriber%' 
  -- AND wp_users.user_email     
  ORDER BY wp_users.user_nicename";
  $result = $mysqli->query($sql);

  // var_dump($resultl);

//var_dump($result);

      echo "<table class='table table-striped table-class' id= 'table-id'>
      <thead>

      <tr>

      <th style='padding:20px;border:1px solid;color:#489ACF;width:150px; '>Email</th>
      <th style='padding:20px;border:1px solid;color:#489ACF; '>Username</th>
      <th style='padding:20px;border:1px solid;color:#489ACF; '>Date</th>
      <th style='padding:20px;border:1px solid;color:#489ACF; '>Address</th>
      <th style='padding:20px;border:1px solid;color:#489ACF; '>Mobileno</th>
      </tr>  <thead>";


 while($rows=$result->fetch_assoc()){
        // $user_email=$rows['user_email'];
        // $user_login=$rows['user_nicename'];
        // $date=$row['user_registered'];
        // $user_id=$rows['ID'];
        // echo $user_id;
                  echo "  <tbody> <tr>";

// echo "<td>" . $row['id'] . "</td>";
        echo "<td style='padding:20px;border:1px solid;color:#489ACF; '>" . $rows['user_email']. "</td>";
        echo "<td style='padding:20px;border:1px solid;color:#489ACF; '>" .$rows['user_nicename']. "</td>";
        echo "<td style='padding:20px;border:1px solid;color:#489ACF; '>" .$rows['user_registered']. "</td>";
        // echo "<td style='padding:20px;border:1px solid;color:#489ACF; '>" .$rows['address']. "</td>";
        // echo "<td style='padding:20px;border:1px solid;color:#489ACF; '>" .$rows['mobile_no']. "</td>";
    
        echo "</tr>  <tbody>";

      }
      echo "</table>";

       
                ?>

如何获取值并使表。。。。 内部加入它的工作充分但如何


共1个答案

匿名用户

由于您使用的是wordpress,因此使用wordpress API是有意义的。 这就是通过特定的元属性查找用户的方法:

   $users = get_users(array(
            'meta_key'     => 'wp_capabilities',
            'meta_value'   => 'subscriber',
             ...any other keys => values...
         ));

如果您需要按角色获取用户,您可以像下面这样获取用户

$users = get_users( array(
    'role'    => 'subscriber',
    'orderby' => 'user_nicename',
    'order'   => 'ASC'
   ));
...
foreach ( $users as $user ) ...

查看wordpress文档中关于函数以及WP_User对象的更多信息。 为了添加用户元数据,您还必须使用提供的wordpress api,这只是添加元数据的一个示例,但不是添加角色的正确方法:

   add_user_meta( $user_id, 'wp_capabilities', 'subscriber', false /*non unique*/ );

假设上面的$USER_ID是通过wp_insert_user之类的函数或任何其他方法获得的,您可以获得ID
来正确添加任何角色,使用add_role函数或任何其他角色函数https://developer.wordpress.org/reference/functions/add_role/