php 用户配置文件中的ACF复选框-无法获取值- Wordpress

ijnw1ujt  于 2022-11-28  发布在  PHP
关注(0)|答案(2)|浏览(129)

我创建了一个ACF复选框字段,并将其分配给“用户配置文件”区域。
我使用一个表单来弹出一个带有复选框的弹出窗口,用户可以在其中选择可用的选项,然后表单保存并更新用户配置文件中的选项。这一切看起来都运行得很好。
但现在我需要使用一个简短代码显示用户配置文件模板中的选定选项。
我的ACF返回值被设置为value,并且我完全按照ACF's docs使用代码片段来显示标签列表。
这是我的简码:

function get_user_profile_choices() {

    $field = get_field_object('color_choices');
    $colors = $field['value'];

    // Display labels.
    if( $colors ): ?>
    <ul>
    <?php foreach( $colors as $color ): ?>
        <li><?php echo $field['choices'][ $color ]; ?></li>
    <?php endforeach; ?>
    </ul>
    <?php endif;
 
}
add_shortcode( 'user-profile', 'get_user_profile_choices' );

我目前只是用我自己的管理员帐户测试这个,所以我试图在我的个人资料中显示我的选择。
我什么都没得到。可能是因为复选框在用户配置文件中吗?我需要声明任何用户变量吗?有什么想法吗?

o7jaxewo

o7jaxewo1#

看看这个,这样你就可以得到当前登录用户的值。

function get_user_profile_choices() {
    $user_id = get_current_user_id();
    $field = get_field_object('color_choices', 'user_'.$user_id);
}
add_shortcode( 'user-profile', 'get_user_profile_choices' );
iqih9akk

iqih9akk2#

在函数“get_field_object”中添加第二个参数“user_USERID”,以便从用户配置文件字段中获取值。

将“1”更改为您的用户ID

$user_id = 1;
$field = get_field_object('color_choices', 'user_' . $user_id);

相关问题