在WordPress页面上显示当前用户元数据

时间:2019-06-27 作者:FAQ Tutoring

所以我有一个Wordpress网站,我希望能够在页面上显示当前登录用户的数据。在此之前,我已经能够找到一段可以放入函数中的代码。php和我可以使用像[currentuser\\u(specific\\u metadata\\u tag)]这样的短代码,并将其显示出来。我找不到包含此代码的堆栈交换问题。是否有人可以重新发布该问题的链接,或者给我一段代码来实现到函数文件中,以便我可以使用快捷码访问当前用户数据?我认为这应该相当简单,函数只需获取当前用户id,然后查看特定元数据并提取数据,然后显示简短的代码。

在任何意义上,我都不完全熟悉PHP的编码,所以如果我能得到任何帮助,我将非常感激!

1 个回复
最合适的回答,由SO网友:Chetan Vaghela 整理而成

您可以尝试下面的代码片段。我已经开发了短代码,您可以从中参考。

function current_user_data_func( $atts ) {

    extract( shortcode_atts( array(
        \'metakey\' => \'\',
        \'user_field\' => \'\',
    ), $atts) );
     ob_start();
    if(is_user_logged_in())
    {
        $current_user = wp_get_current_user();

        $c_user_id = $current_user->ID;
        if(!empty($metakey))
        {
            $value = get_user_meta( $c_user_id, $metakey, true); 
            echo $value;
        }

        if(!empty($user_field))
        {
            echo $current_user->{"$user_field"}; 

        }

    }
    else
    {
        echo "User Not Logged In";
    }
  return ob_get_clean();
}
add_shortcode( \'current_user_data\', \'current_user_data_func\' );
如何使用:

User_fields : 
  user_login
  user_email
  user_firstname
  user_lastname
  display_name

# In template
echo do_shortcode( \'[current_user_data metakey="nickname"]\' );
echo do_shortcode( \'[current_user_data user_field="user_email"]\' );

#in content 

[current_user_data metakey="first_name"]
[current_user_data user_field="user_email"]
meta key return only single value if you have stored array value in meta key then you have to remove \'true\' from get_user_meta( $c_user_id, $metakey, true); and get value from that array variable $value.

如果这对你有帮助,请告诉我!

相关推荐

WordPress循环中的WordPress AJAX PHP(Html)文件

我有一个Wordpress AJAX调用,它可以从PHP文件中获取原始数据。AJAX使用的是管理AJAX。php文件。然而,我需要获取的PHP文件位于页面的循环中。如果它只是包含在页面上,那么它的放置位置就是它的工作位置。总结一下:如果AJAXed的PHP文件中包含:<?php echo \'this is the file!\' ?> …一切正常。但如果有:<?php the_title(); ?> …返回空白。感谢您抽出时间阅读此文!