大家好,感谢您的阅读.
环境 :
问题:
我现在已经搜索了几个小时,我似乎无法找到正确的语法来执行以下操作:
发布新帖子时,获取自定义字段值,以便自动用该值替换帖子的标题.示例:我创建了一个帖子并在我的’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的回答更新了答案.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。