首页 > 解决方案 > WordPress ACF 保存帖子功能,只需要在保存的页面为自定义帖子类型时触发。或者,如果字段存在?

问题描述

我正在尝试操纵my_acf_save_post函数来做一些数学运算并使用结果数字更新字段。这部分正在工作,字段full_market_priceexample_price用于计算computed_price 。

几天前我这样做了,但现在每当尝试保存页面或发布不需要此功能且不包含 ACF 字段的帖子时都会遇到问题。所以网站的每个部分,而不仅仅是需要这个数学的 1 个部分。它会导致各种错误,我无法正确保存页面。

如果要保存的页面在自定义帖子类型中,我如何才能使此代码段有效?所以它不会破坏其他页面?

我正在尝试使用 if (is_single() && is_post_type('nameofposttype'))

但是我似乎无法正确理解,PHP 不是我最强的!询问字段是否不存在然后什么都不做的更好的方法是什么?

非常感谢您的任何帮助或想法,

function my_acf_save_post( $post_id ) {

// get values
$fmp = get_field('full_market_price');
$saPercent = get_field('example_price');

// do something
$examplePrice = ($fmp / 100) * $saPercent;
update_field('calculated_price', $examplePrice, $post_id);

}

add_action('acf/save_post', 'my_acf_save_post', 20);

标签: wordpressadvanced-custom-fields

解决方案


我刚刚遇到了类似的问题。我会做类似的事情:

function my_acf_save_post ($post_id) {

  // If not CPT, exit
  if (get_post_type($post_id) != 'nameofposttype') {
    return;
  }

  // Remainder of code
  ...

}
add_action('acf/save_post', 'my_acf_save_post', 20);

推荐阅读