在全网范围内保存用户上次访问的博客

时间:2013-03-25 作者:CBeTJlu4ok

我有一个很大的子域网络(其中许多使用域)。我曾想过用cookie解决这个问题,但经过一些研究,我认为跨域cookie不是一个好主意。

所以,我想这是通过在用户元中保存一些博客数组,然后将它们显示在主页上实现的。

我偶然发现update_user_meta() 这对我来说很方便。

global $blog_id;
$current_blog_details = get_blog_details( array( \'blog_id\' => $blog_id ) );

if (is_user_logged_in()) {
    $user = wp_get_current_user();
    update_user_meta($user->ID, \'last_visited_blogs\',  $current_blog_details->blogname);
}
我将此函数保存在管理栏中。所以每个博客都共享这段代码。现在我想重新编写这段代码,将5个上次访问的博客保存为一个数组,然后获取这些值并显示在某个地方。

第一个问题是如何保存5个站点。我想更新不是我的情况不?

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

谢谢你的关注,我和update_user_meta这是我写的小函数

global $blog_id;
$current_blog_details = get_blog_details( array( \'blog_id\' => $blog_id ) );

if (is_user_logged_in()) {
    $user = wp_get_current_user();

    $last_visited_blogs = get_user_meta($user->ID, \'last_visited_blogs\',true);
    if($last_visited_blogs) {
        if (end($last_visited_blogs) != $current_blog_details->blogname) {
            if (count($last_visited_blogs) < 5) {
                array_push($last_visited_blogs, $current_blog_details->blogname);
            } else {
                array_shift($last_visited_blogs);
                array_push($last_visited_blogs, $current_blog_details->blogname);
            }
            update_user_meta($user->ID, \'last_visited_blogs\', $last_visited_blogs);
        }
    } else {
        $last_visited_blogs = array($current_blog_details->blogname);
        update_user_meta($user->ID, \'last_visited_blogs\', $last_visited_blogs);
    }
    $last_visited_blogs_reversed = array_reverse($last_visited_blogs);
    foreach($last_visited_blogs_reversed as $key => $value) {
        $wp_admin_bar->add_menu( array(
            \'id\'    => $value,
            \'title\' => $value,
            \'href\'  => admin_url( \'didiyle.php\' ),
        ) );
    }
}
我在我的管理栏中使用它,如果你需要,你可以在任何地方使用它,尽管需要一些修改

结束

相关推荐