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

如何通过调度器自动运行Google Sheets中WordPress脚本,无需手动操作

解决方案:定时运行WordPress文章同步脚本

一、修改脚本适配无UI/定时运行场景

原脚本依赖活动表格会话和UI弹窗,定时运行时这些逻辑会失效,需要针对性调整:

1. 固定目标表格

替换所有SpreadsheetApp.getActiveSpreadsheet()为通过表格ID/URL直接打开,避免依赖活动会话:

// 从表格URL中提取ID,格式示例:https://docs.google.com/spreadsheets/d/[表格ID]/edit
const SPREADSHEET_ID = "你的表格ID";
var ss = SpreadsheetApp.openById(SPREADSHEET_ID);
// 或用URL打开:SpreadsheetApp.openByUrl("你的表格完整URL");

2. 切换到指定的「WordPress」工作表

修改setupSheet函数,确保操作的是目标工作表(不存在则自动创建):

function setupSheet() {
  var ss = SpreadsheetApp.openById(SPREADSHEET_ID);
  // 获取或创建名为"WordPress"的工作表
  var sheet = ss.getSheetByName("WordPress");
  if (!sheet) {
    sheet = ss.insertSheet("WordPress");
  }
  ss.setActiveSheet(sheet);
  
  // 清空表格并设置表头
  sheet.clear();
  sheet.getRange('A1:D1').setValues([['Featured Image', 'Title', 'Updated', 'Post URL']]);
  sheet.getRange('A1:D1').setFontWeight('bold').setFontStyle('italic');
}

3. 移除UI依赖的错误提示

定时运行时无法弹出弹窗,将错误处理改为日志记录或邮件提醒:

catch(error) {
  // 记录错误到日志(脚本编辑器→查看→日志可查看)
  Logger.log("同步失败:" + error.toString());
  // 可选:发送邮件提醒
  // MailApp.sendEmail("你的邮箱地址", "WordPress同步脚本出错", error.toString());
}

4. 完整修改后的脚本

// 替换为你的表格ID
const SPREADSHEET_ID = "你的表格ID";

function onOpen() {
  SpreadsheetApp.getUi() 
      .createMenu('WordPress')
      .addItem('Get Posts', 'getPosts')
      .addToUi();
  setupSheet();
}

function setupSheet() {
  var ss = SpreadsheetApp.openById(SPREADSHEET_ID);
  var sheet = ss.getSheetByName("WordPress");
  if (!sheet) {
    sheet = ss.insertSheet("WordPress");
  }
  ss.setActiveSheet(sheet);
  
  sheet.clear();
  sheet.getRange('A1:D1').setValues([['Featured Image', 'Title', 'Updated', 'Post URL']]);
  sheet.getRange('A1:D1').setFontWeight('bold').setFontStyle('italic');
}

function getPosts(){
  setupSheet();
  let offset = 0;
  const per_page = 1;
  while ( (got=getPage(offset,per_page)) > 0  && got < 2 ) {
    offset += got;
    Logger.log('offset %s', offset);
  }
}

function getPage(offset,per_page) {
  var ss = SpreadsheetApp.openById(SPREADSHEET_ID);
  var sheet = ss.getSheetByName("WordPress");
  
  var options = {
      'method': 'get',
      "contentType" : "application/json",
      'muteHttpExceptions': true
    }
  var apiHost = 'https://mywebsite.co.uk';
  const url = apiHost + '/wp-json/wp/v2/posts?per_page='+per_page+'&offset='+offset;
  
  try {
    const response = UrlFetchApp.fetch(url, options);
    const data = JSON.parse(response)
    for (let i = 0; i < data.length; i++) {  
     const row = offset + i + 2;
     sheet.getRange('A'+row).setValue(data[i].featured_image_url);
     sheet.getRange('B'+row).setValue(data[i].title.rendered);
     sheet.getRange('C'+row).setValue(data[i].modified);
     sheet.getRange('D'+row).setValue(data[i].link);
    }
    return data.length;
  } catch(error) {
    Logger.log("同步错误:" + error.toString());
  }
  return 0;
}

二、设置定时触发器

  1. 打开表格的脚本编辑器(扩展程序 → Apps脚本)
  2. 点击左侧「触发器」图标(闹钟形状)
  3. 点击「添加触发器」,配置参数:
    • 选择运行函数:getPosts
    • 事件源:时间驱动
    • 时间类型:按需选择(如「日计时器」,设置每天固定时间运行)
  4. 保存并完成授权,触发器会在云端自动执行脚本,无需手动打开表格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:15:20