标签:wordpress php wordpress-plugin hook advanced-custom-fields
大家好,感谢您的阅读.
环境 :
WordPress高级自定义字段插件
问题:
我现在已经搜索了几个小时,我似乎无法找到正确的语法来执行以下操作:
发布新帖子时,获取自定义字段值,以便自动用该值替换帖子的标题.示例:我创建了一个帖子并在我的’time’自定义字段中设置’10am’.帖子的标题自动被’上午10点’取代.
例:
所以我添加了一个带有以下内容的过滤器:
add_filter('wp_insert_post_data', 'change_title') ;
function change_title($data)
{
$time = XXX ; // How should I get this custom field value ?
$new_title = 'Topic created at'.$time ;
$data['post_title'] = $time ;
return $data;
}
它必须非常简单,但我已经尝试了WP和插件文档中的所有可用功能.如果路过的人给我解决方案,我将非常感激.
提前致谢 !
解决方法:
你可以实际访问你的字段值的全局$_POST变量,但我想你可以通过使用save_post动作来更新你的帖子的标题,以更清洁的方式做到这一点,例如:
add_action('save_post', 'change_title');
function change_title($post_id) {
$time = get_field('time',$post_id);
$post_title = 'Topic created at '. $time;
// unhook this function so it doesn't loop infinitely
remove_action('save_post', 'change_title');
// update the post, which calls save_post again
wp_update_post(array('ID' => $post_id, 'post_title' => $post_title));
// re-hook this function
add_action('save_post', 'change_title');
}
假设您的ACF字段名称是“时间”.
编辑:根据Mark Chitty的回答更新了答案.
标签:wordpress,php,wordpress-plugin,hook,advanced-custom-fields 来源: https://codeday.me/bug/20190716/1477715.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。