首页>建站相关>wordpress定时自动发布

wordpress定时自动发布

访问了一个博客,发现这个博客上有一个api自动推送的新闻集锦页面,每次打开页面的时候,后台会自动去请求一次api,获取到最新的数据并展现,这样就实现了内容的实时更新。但由于目前很多api都限制了使用次数,这种打开页面即请求api的方式,在站点本身访客较多的情况下,对api站点的请求次数也是非常频繁的,一旦达到了次数的上限,api拒绝响应,就可能导致后来的来访用户无法正常访问该页面。

一些自己的想法

于是就考虑了这样一个问题,如果在自己的博客上放这样一个内容,该如何处理呢?几周前参考张戈博客的文章,无插件实现了博客的sitemap时,接触到了linux的定时任务,具体实现是设置一个php文件来生成php版本sitemap页面,然后利用linux定时任务间隔一段时间后抓取这个页面并另存为xml版本的sitemap,这样就完成了一套自动化的流程。这个模式似乎也可以用在这个命题中,定时去抓取一次数据,判断该数据的更新时间,如果同最后一次自动发布的时间不同,则让php整理一下数据并自动发布一篇新的文章,如果相同,则认为这些数据已经发布过了,不再进行处理。

wp的文章发布函数

查了一下手册,wordpress确实提供了可以用来发布或者更新一篇新的文章的函数,这个函数就是“wp_insert_post”,只需要传入一个固定格式的数组,“wp_insert_post”会自动处理好同数据库的衔接。正常书写博客一般是不需要用到这个函数的,该函数经常被用于采集或是处理作者的投稿上。

wp_insert_post的参数:

  • $postarr:(数组) (必需) 组成要更新或插入的文章的元素数组
  • $wp_error:(bool) (可选)是否返回错误信息,默认值:假
  • $fire_after_hooks:(bool) (5.6.0版本添加,可选) 是否触发 after insert 钩子,默认值:真

$postarr的参数

键值 类型 数据用途
id int 如果等于0以外的值,则具有该id的文章将被更新,为0则新建一篇;
post_author int 添加文章的用户的id,默认为当前用户id;
post_date string 发布日期,默认为当前时间;
post_date_gmt string 在 GMT 时区发布的日期,默认值为 的值$post_date;
post_content string 文章内容,默认为空;
post_content_filtered string 过滤后的文章内容,默认为空;
post_title string 文章标题,默认为空;
post_excerpt string 文章摘录,默认为空;
post_status string 发布状态,默认"草稿";
post_type string 文章类型,默认"发布";
comment_status string 文章是否可以接受评论。接受"打开"或"关闭",默认值是"default_comment_status"选项的值;
ping_status string 文章是否可以接受 ping,接受"打开"或"关闭",默认值是"default_ping_status"选项的值;
post_password string 访问文章的密码,默认为空;
post_name string 文章别名,默认是创建新文章时经过清理的文章标题;
to_ping string 以空格或回车分隔的要 ping 的 URL 列表,默认为空;
pinged string 已被 ping 的 URL 的空格或回车分隔列表,默认为空;
post_modified string 上次修改文章的日期,默认为当前时间;
post_modified_gmt string 最后一次在 GMT 时区修改文章的日期,默认为当前时间;
post_parent int 为它所属的文章设置此项,如果有的话,默认为0;
menu_order int 文章的显示顺序,默认为;
post_mime_type string 文章的mime类型,默认为空;
guid string 用于引用文章的全局唯一id,默认为空;
import_id int 插入新文章时要使用的文章id,如果指定,则不得与任何现有文章id匹配,默认为0;
post_category array 类别id数组,默认为“default_category”选项的值;
tags_input array 标签名称、slug 或id的数组,默认为空;
tax_input array 由分类名称键入的分类术语数组。如果分类是分层的,则术语列表需要是术语id的数组或以逗号分隔的id字符串。如果分类法是非分层的,则术语列表可以是包含术语名称或 slug 的数组,或者是逗号分隔的名称或 slug 字符串。这是因为,在分层分类法中,子术语可以与不同的父术语具有相同的名称,因此连接它们的唯一方法是使用id。默认为空;
meta_input array 自定义栏目数组,默认为空。(4.4.0版本添加)

标签: wordpress

移动端可扫我直达哦~

推荐阅读

wordpress 2025-01-15

利用WordPress Settings API制作主题设置页

关于WordPress设置API在WordPress v2.7中添加了设置API,它允许开发人员创建管理选项页面。界面风格与WordPress后台风格保持一致,只是它使用起来并不那么简单。你不能只定义一个设置数组,您需要编写自己的字段...

建站相关 wordpress

wordpress 2025-01-13

woocommerce历史版本下载页

WooCommerce是一个开源的电子商务插件,专为WordPress网站设计,允许用户在其网站上创建和管理在线商店。自2011年推出以来,WooCommerce迅速成为全球最受欢迎的电商解决方案之一。https://develope...

建站相关 wordpress

wordpress 2025-01-13

关于wp_get_nav_menu_items()这个函数

自己手动书写css的情况,wp的wp_nav_menu()会提供一套分工明确的类,根据其默认类适配css基本就够用了。但应用一些其他框架的时候,不同框架的类名定义显然是不一致的,这个时候wp_nav_menu()提供的自定义功能就有些...

建站相关 wordpress

wordpress 2025-01-10

Wordpress主题中的单例模式

其实对于博主这样的初学者,这个话题是有点超纲的,但如果从零开始想做一个主题。观摩一些成熟的主题是必不可少的,这个时候就有可能遇到这种单例模式的写法,所以即便我们暂时用不到,但了解一下结构,多少能看明白这个类究竟在做些什么事情。单例模式...

建站相关 wordpress

wordpress 2025-01-06

Wordpress主题开发笔记之三 wp_head()

WordPress主题或插件都可以通过给wp_head()函数来向网站的head标签中加入内容,这个函数经常会和wp_footer()函数一起出现,顾名思义,wp_footer()负责在站点的尾部插入内容,这是官方推荐的引入资源的方式...

建站相关 wordpress

wordpress 2025-01-03

Wordpress主题开发笔记之零 劝退函数列表

在ytkah大佬的博客里看到了这个列表,原文地址如下,复制进excel表格内发现一共有951项(含中文小标题),粗略估计有900来个函数吧。当然这并不是Wordpress函数的全貌,但单这900多个函数中的部分函数,可能很多人终其职业...

建站相关 wordpress

wordpress 2024-12-26

从零开始做一个wordpress主题系列

一直想DIY一个wordpress主题,虽然梦想还是要有的,但念念不忘,至今也没有什么回响。博客里倒是攒了几篇相关的文章,眼瞅着孩子快放寒假,假期不再需要迎来送往,可能会空一点,就准备整理一下,顺便重拾这份初心。因为是随手做的笔记,所...

建站相关 wordpress

wordpress 2024-12-26

创建自定义WordPress主题设置页面

WordPress以其灵活性和易用性而闻名,使其成为各种规模网站的热门选择。有助于其灵活性的关键功能之一是能够为您的主题创建自定义设置页面。这使您可以为用户提供一个界面,以自定义主题的各个方面,而无需深入代码。为什么要创建自定义设置页...

建站相关 wordpress