wordpress - WordPress ACF 保存帖子功能,只需要在保存的页面为自定义帖子类型时触发。或者,如果字段存在?
问题描述
我正在尝试操纵my_acf_save_post函数来做一些数学运算并使用结果数字更新字段。这部分正在工作,字段full_market_price和example_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);
解决方案
我刚刚遇到了类似的问题。我会做类似的事情:
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);
推荐阅读
- c# - 在 dotnet 中将银行添加到 Stripe Connect 账户
- excel - 带有符号 Excel 的设计下拉菜单
- jquery - 如何将jQuery结果传递给laravel中的数字字段max属性?
- java - Java MIDI - ControllerEventListener(如何更改乐器)
- amazon-web-services - 以编程方式打开“用于 SFTP 的 aws 传输”?
- python - XML转CSV转换器
- node.js - 无论路由如何,如何从 Hapijs 服务器提供 React 页面
- reactjs - 尽管绑定,onClick 在按钮中不起作用
- c# - 使用 AD 的服务帐户和用户帐户凭据连接到 Active Directory 以登录(在我的产品中)
- visual-studio - Visual Studio 2017 无法打开现有文件