WordPress实现固定前缀ABC-加随机6位数字的文章标题自动生成且更新不修改
在WordPress中自动生成固定格式且更新不修改的文章标题
可以通过WordPress的钩子机制实现这个需求,核心逻辑是仅在新建文章时生成标题,更新时保留原标题,具体代码如下:
add_filter('wp_insert_post_data', 'auto_generate_custom_post_title', 10, 2); function auto_generate_custom_post_title($data, $postarr) { // 限定仅处理默认文章类型,如需自定义文章类型,替换成对应slug if ($data['post_type'] !== 'post') { return $data; } // 判断是否为新建文章:自动草稿/草稿状态且文章ID为0(未保存过) if (($data['post_status'] === 'auto-draft' || $data['post_status'] === 'draft') && $postarr['ID'] == 0) { // 生成6位随机数字,不足6位自动补前导0 $random_suffix = str_pad(rand(0, 999999), 6, '0', STR_PAD_LEFT); // 拼接固定前缀和随机后缀 $data['post_title'] = 'ABC-' . $random_suffix; } // 更新文章时直接返回原数据,不修改标题 return $data; }
注意事项
- 把代码添加到当前主题的
functions.php文件,或者封装成自定义插件(推荐用插件,避免主题更新导致代码丢失) - 如果需要给自定义文章类型设置自动标题,修改
$data['post_type'] !== 'post'中的post为你的自定义文章类型标识 str_pad函数保证随机后缀始终是6位,比如随机数是456的话会转换为000456,严格符合ABC-xxxxxx的格式- 钩子优先级设为10(默认值),确保逻辑在WordPress默认保存流程中正常执行
内容的提问来源于stack exchange,提问作者zozson
相关产品推荐
相关产品推荐

