如何在 WordPress 中以编程方式创建帖子和页面

已发表: 2021-09-16

您是否正在寻找向您的网站添加帖子和页面的替代方法? 你来对地方了。 在本指南中,我们将向您展示如何在 WordPress 中以编程方式创建帖子和页面

作为世界上最大的内容管理系统 (CMS),发布帖子和页面是其主要功能之一。 最初,创建 WordPress 是为了帮助网站所有者创建和管理他们的网站。 如今,它已成为各种网站的完整解决方案。

除了在博客和在线商店中流行之外,还有许多其他类型的网站使用 WordPress 构建,从目录到目录再到工作委员会、维基、个人作品集、论坛,甚至社交媒体网络。

所有网站(静态网站除外)都会以一定的频率发布某种类型的内容。 与产品、评论、评论等其他类型相比,帖子和页面是最基本的内容类型。

在我们了解为什么以及如何以编程方式创建帖子和页面之前,让我们更好地了解它们之间的区别。 这将帮助您遵循良好的做法并避免任何可能的问题。

帖子和页面之间的区别

1) 帖子

在 WordPress 中,帖子是网站向用户提供有价值和更新内容的方式。 预计网站会定期发布帖子,但根据网站类型的不同会有很大差异。 新闻博客会比公司网站更频繁地发布内容,因此网站上的帖子数量可能会有很大差异。

帖子通常在网站上按时间倒序排列。 这意味着最新发布的帖子将显示在列表顶部。 但您也可以将帖子设为置顶并将其永久显示在您网站的某个位置。

当您拥有一个包含数百甚至数千个帖子的大型网站时,正确使用分类法是让用户轻松找到任何帖子的关键。 请记住,他们将浏览类别和子类别,查看标签列表并使用搜索框。 有关这方面的更多信息,请查看我们关于如何向菜单添加类别的帖子。

2) 页面

与帖子不同,页面旨在比帖子更静态。 但是,它们通常包含不断更新的内容。 例如,商店页面或类别页面肯定会有更新的内容,但它们仍然是页面,因为您不会为每次产品更新发布新的商店页面。

“关于我们”、“我们是谁”、“联系方式”或“文档”等页面主要是静态内容,因此它们通常不会经常更新。

帖子和页面之间的另一个区别是标签和类别。 帖子可以有类别和标签,以方便他们的组织和用于搜索框,而页面缺乏分类法。

有关这方面的更多信息,请查看我们的指南,该指南解释了创建页面的不同方法。 此外,我们建议您查看我们的教程以更改 WordPress 中的帖子类型。

为什么以编程方式创建帖子和页面?

您可能知道如何从 WordPress 仪表板创建帖子和页面。 您只需转到帖子/页面 > 添加新内容并添加名称、内容、选择类别等。

但是,如果您正在处理更高级的项目,则可能需要替代解决方案。 例如,如果您需要自动化发布过程以满足特定要求或限制某些用户的访问。 如果是这种情况,学习以编程方式创建 WordPress 帖子和页面将非常有用。

如何以编程方式发布WordPress帖子和页面

在本节中,我们将向您展示如何在 WordPress 中以编程方式创建帖子和页面。 我们将在下面解释代码,但建议您具备一些编程技能以使该过程更容易。

注意:由于我们将编辑一些核心文件,因此在开始之前,我们建议您备份您的站点。 最重要的是,如果您还没有子主题或使用这些子主题插件中的任何一个,请创建一个子主题。

如何发布帖子

这是将自动发布帖子的完整脚本以及下面代码的解释。 请记住,您必须将代码粘贴到子主题的functions.php文件中

add_action('admin_init', 'QuadLayers_publish_post');

函数 QuadLayers_publish_post() {
 
    如果(get_option('post_is_published_01')!='是'){
		 $postType = '发布'; 
		 $用户ID = 1; 
		 $categoryID = '1'; 
		 $postStatus = '发布';  
		 $leadTitle = '发表了一篇文章'.date("n/d/Y");
		 $leadContent = '<h1>以编程方式发布</h1><p>此帖子以编程方式发布,元选项另存为 <b>post_is_published_01</b>。 子主题的functions.php文件中的一个PHP脚本。</p>';
		 $leadContent .= ' <!--more--><p>它们很贵,但完全值得。</p>';
		 
		 # 构建时间和日期
		 $timeStamp = $minuteCounter = 0;  
		 $iCounter = 1; 
		 $分钟增量 = 1; 
		 $adjustClockMinutes = 0; 
		 $minuteCounter = $iCounter * $minuteIncrement; 
		 $minuteCounter = $minuteCounter + $adjustClockMinutes; 
		 $timeStamp = date('Ymd H:i:s', strtotime("+$minuteCounter min")); 

	 	 # 建立帖子
		 $new_post = 数组(
		 'post_title' => $leadTitle,
		 'post_content' => $leadContent,
		 'post_status' => $postStatus,
		 'post_date' => $timeStamp,
		 'post_author' => $userID,
		 'post_type' => $postType,
		 'post_category' => 数组($categoryID)
		 );	
		 #发布吧!
		 $post_id = wp_insert_post($new_post);

  update_option('post_is_published_01', '是');
    }
}

由于我们在发布之前无法知道帖子是否存在,因此我们需要在发布帖子的地方注册。 如果我们不这样做,我们的帖子将在每次加载后端屏幕时发布。

数据库的选项表是执行此操作的正确位置。 在发布帖子后,我们使用update_option()函数存储了一个名为post_is_published_01的选项。 并使用get_option()检查选项是否存在。 如果数据库中存在此选项,则脚本不会执行任何操作。

要再次运行脚本,您只需将选项名称更改为post_is_published_02或任何您想要的名称。

if()条件中,您可以看到我们如何在第一个块上定义帖子的内容。 我们需要准备时间和日期以匹配 WordPress 的要求。

最后,负责发布帖子的函数是wp_insert_post() ,它附加了函数中声明的所有先前数据

以编程方式发布帖子

如何发布页面

以编程方式发布页面要简单一些。 在这个脚本中,我们不会使用数据库选项来检查页面是否已经发布。

由于页面与帖子的功能不同,并且帖子和页面的 WordPress 功能不同,我们可以使用get_page_by_title()函数来检查我们之前是否发布过具有相同标题的页面。 然后我们插入有关页面的信息,例如作者、标题、名称等。

使用以下脚本在您的 WordPress 网站上发布页面:

 add_action('admin_init', 'QuadLayers_publish_page');

函数 QuadLayers_publish_page(){
	$check_page_exist = get_page_by_title('页面以编程方式发布', 'OBJECT', 'page');
	如果(空($check_page_exist)){
		$page_id = wp_insert_post(
			大批(
			'comment_status' => '关闭',
			'ping_status' => '关闭',
			'post_author' => 1,
			'post_title' => ucwords('页面以编程方式发布'),
			'post_name' => strtolower(str_replace(' ', '-', trim('页面以编程方式发布'))),
			'post_status' => '发布',
			'post_content' => '<p>这是页面内容,此处允许使用html标签</p>', 
                        'post_type' => 'page', 'post_parent' => 'id_of_the_parent_page_if_it_available' ) ); 
        } 
} 

以编程方式发布页面

结论

总之,在本指南中,我们看到了帖子和页面之间的一些关键区别。 帖子往往更加动态并且具有分类法和类别,而页面往往更加静态并且没有分类法。

即使在 WordPress 中,您可以使用内置编辑器轻松创建页面和帖子,但在某些情况下通过一些编码来学习这样做对于自动化发布过程以满足特定要求很有用。 如果这是您的情况,学习如何以编程方式创建帖子和页面可以让您的生活更轻松。

在本指南中,我们了解了如何创建帖子和页面以及脚本中的差异。 我们鼓励您以这些脚本为基础并为您的站点定制它们。

您是否尝试过使用一些代码创建帖子和页面? 它是否按您的预期工作? 在下面的评论部分让我们知道!

如果您喜欢这篇文章,您可能还对以下内容感兴趣:

  • 如何重定向 WordPress 页面
  • 如何在WordPress中转换帖子类型
  • 以编程方式创建 WordPress 自定义帖子类型的指南