You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过WordPress文章标题查询对应post ID,以批量更新视频文章发布日期?

实现方案

WordPress原生提供了两种常用方式实现通过文章标题精准匹配获取对应post ID,适配不同的使用场景:

1. PHP代码集成(适用于主题/插件自定义开发场景)

推荐优先使用WP_Query实现,兼容所有WordPress版本,且可灵活适配自定义文章类型:

// 填入从xlsx中读取的文章标题
$target_title = '你的视频文章标题';
$post_query_args = [
    // 替换为你的视频文章对应的 post type,默认文章填'post'
    'post_type' => 'post',
    // 可按需调整为你需要匹配的文章状态,比如draft/pending等
    'post_status' => 'publish',
    'title' => $target_title,
    'posts_per_page' => 1,
    // 仅返回ID字段,降低查询开销
    'fields' => 'ids'
];

$post_query = new WP_Query($post_query_args);
$matched_post_id = 0;
if ($post_query->have_posts()) {
    $matched_post_id = $post_query->posts[0];
    // 拿到ID后即可执行更新发布日期的逻辑
}
// 重置查询数据,避免影响后续主查询
wp_reset_postdata();

注意:如果你使用的WordPress版本低于6.2,也可以用get_page_by_title()快速查询,该函数自6.2版本起已被官方废弃:

// 第三个参数替换为实际的视频文章post type
$matched_post = get_page_by_title($target_title, OBJECT, 'post');
if ($matched_post) {
    $matched_post_id = $matched_post->ID;
}

拿到post ID后,你可以用以下逻辑更新文章发布日期:

// 替换为从xlsx中读取的新发布日期,格式为Y-m-d H:i:s
$new_publish_date = '2024-05-20 14:30:00';
wp_update_post([
    'ID' => $matched_post_id,
    'post_date' => $new_publish_date,
    'post_date_gmt' => get_gmt_from_date($new_publish_date)
]);

2. WP-CLI命令行实现(适用于批量处理场景)

如果你需要批量处理xlsx中的大量条目,可将xlsx导出为CSV后配合WP-CLI完成操作,单条查询post ID的命令如下:

wp post list --post_type=post --title="你的文章标题" --field=ID --posts_per_page=1

命令执行后会直接输出匹配到的文章ID,可配合shell脚本完成批量查询+更新操作。


注意事项

  • 批量操作前务必先备份站点数据库,避免误操作导致数据丢失
  • 建议先选取3-5条xlsx数据做测试,确认标题匹配、日期更新逻辑均符合预期后再执行全量操作
  • 若站点文章量超过1万,建议给查询逻辑添加缓存,避免重复查询拖慢执行速度

内容的提问来源于stack exchange,提问作者brice briere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 20:15:01