ACF - 根据用户状态更改 post 特色图片

ACF - Change post featured image based on user status

我创建了一个名为“main_image”的字段组,在它下面有 2 个字段 1. 'main_image_logged' 类型:图片

2。 'main_image_logout' type:image

我想做的是为所有人显示 post 附带的经典特色图片,并为已登录的用户显示字段“main_image_logged'[ 中的图片=12=]

对于注销,我什至尝试设置 name:_thumbnail_id,它从“main_image_logout”获取图像并将其用作特色图像。

有什么办法吗? 如果用户已注销 -> 来自字段“main_image_logout”的特色图片 如果用户已登录 -> 来自字段“main_image_logged”

的特色图片

试过类似的东西,但它是错误的

function acf_set_featured_image( $value, $post_id, $field  ){
if (is_user_logged_in()) {    
    if($value != ''){
        //Add the value which is the image ID to the _thumbnail_id meta data for the current post
        add_post_meta($post_id, '_thumbnail_id', $value);
    }
 
    return $value;
}
}
add_filter('acf/update_value/name=main_image_logged', 'acf_set_featured_image', 10, 3);

使用: WordPress的 高级自定义字段 Divi 主题

非常感谢大家

试试这个

add_filter('post_thumbnail_id', 'replace_thumbnail_id_with_acf', 20, 2);
function replace_thumbnail_id_with_acf($thumbnail_id, $post) {
    if ( is_user_logged_in() ) {
        $image_id = get_field('reveal_face', $post->ID, false);
        if ($image_id) {
          $thumbnail_id = $image_id;
        }
    } else {
        $image_id = get_field('_thumbnail_id', $post->ID, false);
        if ($image_id) {
          $thumbnail_id = $image_id;
        }
    }
    return $thumbnail_id;
}