如何使Wordpress save_post_($post-type)挂钩与多个自定义post类型配合使用



我有一个与问题相关的save_post_($post-type(挂钩和ACF库字段。

我从某处得到了这个代码片段。让我解释一下:我创建了一个ACF库字段(acf-gallery是字段名(,显示在Custom Post Type(cpt1是段塞(中,然后使用这个片段将该库的第一个图像设置为保存时的特色图像,就像Wooccommerce所做的那样。

但是,如果我想让它与另一个自定义Post类型(假设鼻涕虫是cpt2(一起工作呢?我可以用array( 'cpt1', 'cpt2' )代替cpt1吗?有没有一种方法可以包括多种自定义帖子类型?


/* Set the first image generated by ACF gallery field as featured image */
add_action( 'save_post_cpt1', 'set_featured_image_from_gallery' );
function set_featured_image_from_gallery() {
global $post;
$post_id = $post->ID;
$images = get_field('acf_gallery', $post_id, false);
$image_id = $images[0];
if ( $image_id ) {
set_post_thumbnail( $post_id, $image_id );
}
}

我根据下面的评论使用保存帖子挂钩编辑了这个片段。但我不知道它是否有效。有人能帮忙吗?

/* Set the first image generated by ACF gallery field as featured image */
add_action( 'save_post', 'set_featured_image_from_gallery' );
function set_featured_image_from_gallery($post_id) {
if (get_post_type($post_id) != array( 'cpt1', 'cpt2')) {
return;
}
$has_thumbnail = get_the_post_thumbnail($post_id);
if ( !$has_thumbnail ) {
$images = get_field('acf_gallery', $post_id, false);
$image_id = $images[0];
if ( $image_id ) {
set_post_thumbnail( $post_id, $image_id );
}
}
}

我通常使用save_post钩子、$post_id变量、get_post_typein_array函数。

function set_featured_image_from_gallery($post_id)
{
$included_cpts = array('cpt1', 'cpt2', 'cpt3');
if (in_array(get_post_type($post_id), $included_cpts)) {
$has_thumbnail = get_the_post_thumbnail($post_id);
if (!$has_thumbnail) {
$images = get_field('acf_gallery', $post_id, false);
$image_id = $images[0];
if ($image_id) {
set_post_thumbnail($post_id, $image_id);

}
}
}
}
add_action('save_post', 'set_featured_image_from_gallery');

相关内容

  • 没有找到相关文章

最新更新