WP All Import导入时通过PHP函数将Unix时间戳转换为d/m/Y日期咨询
实现方案
直接使用PHP内置的date()函数即可完成Unix时间戳到指定日期格式的转换,适配WP All Import的场景有两种常用实现方式:
方式1:导入字段内联调用(最便捷)
在WP All Import导入配置的自定义字段值输入框中,直接填入如下代码即可,替换{your_unix_field}为你CSV里对应的Unix时间戳字段名:
<?php echo date('d / m / Y', intval({your_unix_field})); ?>
如果你拿到的是13位毫秒级Unix时间戳,需要先除以1000取整再转换,代码调整为:
<?php echo date('d / m / Y', intval({your_unix_field}) / 1000); ?>
方式2:通过WP All Import钩子全局处理
如果需要批量处理多个字段或者做额外校验,可以使用官方提供的pmxi_saved_post钩子,把如下代码加入当前主题的functions.php文件即可:
add_action('pmxi_saved_post', 'convert_unix_to_date_after_import', 10, 3); function convert_unix_to_date_after_import($post_id, $xml_node, $is_update) { // 读取导入的Unix时间戳字段值,替换deadline_unix为你的CSV字段名 $unix_time = intval($xml_node->deadline_unix); // 转换格式后更新到自定义字段,替换custom_deadline为你的目标自定义字段名 if ($unix_time > 0) { update_post_meta($post_id, 'custom_deadline', date('d / m / Y', $unix_time)); } }
注意事项
- 转换前加
intval()处理是为了避免CSV中字符串格式的时间戳导致格式转换异常 - 若转换结果出现
01 / 01 / 1970,说明传入的时间戳无效,需要检查CSV中对应字段的取值是否为合法的Unix时间戳
内容的提问来源于stack exchange,提问作者Ramagu
相关产品推荐
相关产品推荐

