如何使用get_user_meta($user_id)调用检索meta_key名称

时间:2020-03-23 作者:oldsportbiker

我想检索一个特定用户的所有wp\\u usermeta记录的meta\\u键名称(和值)。虽然我可以通过使用适当的SQL查询数据库来做到这一点,但无法通过get\\u user\\u元函数调用来获得它。

1。使用“$wpdb->get\\u result”

$all_user_meta = $wpdb->get_results ( "SELECT * FROM wp_usermeta WHERE user_id = $user_id " );
if ( !empty($all_user_meta) )
{
     $cnt = 0 ;      
     $idx = -1 ;      
     foreach ( $all_user_meta as $one_meta )
     {
           $meta_key = $one_meta->meta_key ;
           echo(\'Meta Key: \'.$meta_key.\'<br/>\');

           // THIS WORKS !!
     }
}

2。使用Wordpress函数调用

$user_meta_array = get_user_meta($user_id) ;
foreach($user_meta_array as $user_meta)
{
    $meta_key = $user_meta->meta_key ;
    echo(\'Meta Key: \'.$meta_key.\'<br/>\');

     // THIS DOES NOT WORK !!
     // The loop does execute the proper number of times
}

1 个回复
SO网友:oldsportbiker

我刚想出来。我没有正确理解关联数组,在做了更多的研究后,我想出了以下可行的方法:

$user_id = 6 ;
$user_meta_array = array() ;

/* the following Wordpress function outputs an associative array  */

$user_meta_array = get_user_meta($user_id);

$meta_cnt = -1 ;

/* You need the following loop structure to output nicely */

foreach($user_meta_array as $user_meta =>$mk)
{
   $meta_cnt = $meta_cnt + 1 ;
   echo(\'Meta Key: \'.$user_meta.\'<br/>\');

/* Each wp_usermeta key can have multiple values  */

   $meta_vals_found = false ;
   foreach($mk as $mk_each)
   {
      if(!empty($mk_each))
      {
         $meta_vals_found = true ;
         echo(\'Meta Value----> \'.$mk_each.\'<br/>\');
      } 
   }
   if(!$meta_vals_found)
   {
       echo(\'----> No Meta Values Entered<br/>\');
   }   
}

相关推荐

通过admin-post.php提交表单并处理错误

我有一个使用页面模板添加到页面的自定义表单(由于特定原因,我不想使用插件)。我正在使用提交此表单admin-post.php. 在…内functions.php 我有处理表单的功能,它正在工作。我可以在空白处显示验证错误admin-post.php 但显然那不是我想要的。So here are my questions.<我应该只做正常的重定向回到我的表单页面吗?类似于wp_redirect( \'/my-page/\',302);?如何在包含表单的页面上显示我的错误?关于成功,如何用成功消息替换