根据wordpress用户ID显示html数据

时间:2019-05-02 22:10:26

标签: php html wordpress

我在WordPress中工作。我有3个用户,在我的wordpress仪表板登录中,我有一个带有自定义数据的自定义html小部件。这个小部件有3个divs

如果这些用户中的任何一个登录,则可以看到3个div。但是我要做的是为特定用户显示特定的div。

让我说:

<div class=“user1”></div>
<div class=“user2”></div>
<div class=“user3”></div>

并且我想“ user_id = 3”只能看到下一个:

<div class=“user3”></div>

如果用户2登录,则可以看到类为“ user2”的div并隐藏其他

在wordpress中,每个用户名都与ex:user_id = 3

任何了解php和wordpress的人都可以帮助我吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该使用PHP识别用户,然后显示适当的内容。这样,页面仅包含用户应看到的数据。如果您有多个<div>元素,则必须每次都包含它们。这会造成数据泄漏和安全漏洞。


问题

考虑一下:
您的页面上有与您建议的类似的div元素

<div class="user1">User1 Information</div>
<div class="user2">User2 Information</div>
<div class="user3">User3 Information</div>

user1登录时,仅显示divclass='user1'。问题是,您仍在页面中包含user2user3的信息。这是一种不好的做法,因为熟练的用户可以通过查看页面的源代码轻松获得该信息。


正确的方法

您应该使用PHP脚本来识别用户,然后打印您希望他们看到的小部件。下面的代码是一个通用的Wordpress脚本,您需要根据自己的需要进行调整。

$user = wp_get_current_user();
$user_id = $user->ID;

switch($user_id) {
    case 1: //user1 id
        //show user1 widget
        break;
    case 2: //user2 id
        //show user2 widget
        break;
    case 3: //user3 id
        //show user3 widget
        break;
}

在这里,您仅显示用户应该看到的小部件。这不是完成此任务的唯一方法,而且您需要通过指定脚本来实现此目的。您可以使用if语句或使用switch语句或将所有代码放入函数中以包含所有内容。解决方案取决于您,但是我希望这能使您指明正确的方向。