我在worpress网站上使用http://tri.be/中的日历插件获取私人网站(就像内联网......)。
在这个日历上,我放了所有计划的会议,但我希望当前登录的用户只能看到他/她应该加入的事件。
我认为我可以创建一个自定义字段,例如“mustjoin”,并将注册用户名列表作为值。 然后检查页面。 如果当前登录的用户名在该列表中,他/她可以在日历上看到该事件..否则不会。
类似的东西:
if ( $current_user->user_login == get_field(mustjoin)) { ?>
//CODE IF OK
<?php } else { ?>
//CODE ELSE<?php } ?>
当我在ACF框中只有一个用户名时,这当然有效,只要我输入多个用户名..它不再工作,因为它不是一个数组..
如何使用ACF创建数组?什么功能以及如何查询该阵列?
这是我需要显示的代码的一部分,如果当前用户的用户名在值列表'mustjoin'中
<?php while ($day['events']->have_posts()) : $day['events']->the_post() ?>
<?php tribe_get_template_part('month/single', 'event') ?>
<?php endwhile; ?>
在另一个论坛上,一个人告诉我使用这个片段:
function searchForName($name, $array) {
foreach ($array as $key => $val) {
if ($val['nickname'] === $name) {
return true;
}
}
return null;
}
$current_user = wp_get_current_user();
if(searchForName($current_user->user_login,get_field('mustjoin'))):
//CODE GOES HERE
endif;
但它不起作用..
答案 0 :(得分:0)
感谢您的评论。这是代码,它的工作率为99%。
<?php $current_user = wp_get_current_user(); ?>
<?php global $user_login;
get_currentuserinfo(); ?>
<?php $lookforuser = get_field('mustjoin') ?>
<?php if (strpos($lookforuser, $user_login) !== false) { ?>
<?php while ($day['events']->have_posts()) : $day['events']->the_post() ?>
<?php tribe_get_template_part('month/single', 'event') ?>
<?php endwhile; ?>
<?php } ?>
但我需要问你这个代码是否是&#34;清洁&#34;或者如果我能让它更好/更快。
因为当我打开日历页面时,我看不到任何内容..一旦刷新页面,就会出现所有事件(我应该加入的地方)。
我该如何解决? (我试过不同的电脑/浏览器,没有变化..) 谢谢。
感谢另一个网站上的另一个人,最后它以100%的速度运行! 我只需要在事件循环之前检查用户:
<?php $current_user = wp_get_current_user(); ?>
<?php global $user_login;
get_currentuserinfo(); ?>
<?php while ($day['events']->have_posts()) : $day['events']->the_post(); ?>
<?php $lookforuser = get_field('mustjoin'); ?>
<?php if (strpos($lookforuser, $user_login) !== false)
tribe_get_template_part('month/single', 'event'); ?>
<?php endwhile; ?>
无论如何,谢谢您的正确建议和帮助。