如何在页面访问时更新和保存用户元数据?

时间:2021-07-14 作者:robert0

基本上我在寻找这样的东西:

<?php if ( is_page( array( \'home\' ) ) ): ?>
        
update_user_meta( $user_id, \'pagehome\', \'1\' );
        
<?php else: ?>
            
update_user_meta( $user_id, \'pagehome\', \'0\' );

<?php endif; ?>
我想根据当前用户访问的页面更改其用户元数据。

所以我需要找到一个简单的启动代码update_user_meta( $user_id, \'pagehome\', \'1\' ); 并记录到数据库中。

任何帮助都将不胜感激。

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

要做到这一点,你可以采取很多行动,我认为最好的一次行动是wptemplate_redirect.

使用这些操作中的任何一个,代码如下所示,此代码进入functions.php

add_action(\'wp\', \'bt_update_user_homepage_meta\');
function bt_update_user_homepage_meta () {
    // get user id, if user is not logged in then it will be 0
    $user_id = get_current_user_id();

    // now we check if we are in front page or not and we update the user meta accordingly
    // if user is not logged in this code will try to update the meta for user 0,
    // because this user doesn\'t exist, nothing will happen
    if (is_front_page()) update_user_meta($user_id, \'pagehome\', \'1\');
    else update_user_meta($user_id, \'pagehome\', \'0\');
}

相关推荐

WordPress用户Meta&ChromePHP或以其他方式调试/查看php变量

我正在开发一个插件来扩展BuddyBoss平台。具体来说,我正在将BB用户信息与Wordpress用户元数据同步。我的大部分代码都能正常工作(国家和地区组织更新良好),但同步我的“性别”字段并没有按预期工作。它似乎适用于男性和女性,但当选择“其他”时,它会将wordpress用户元字段设置为“女性”。我有两个问题:你能看到这段代码有什么问题吗:(忽略所有5次控制台输出尝试-这是我下面的第二个问题!)function BB_WP_SYNC_update_wordpress_usermeta( $user_i