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;
}
我创建了一个名为“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;
}