Products
GG网络技术分享 2025-03-18 16:07 0
您如何处理要从公共视图中删除但又不想丢弃的已发布 WordPress 内容?
你归档它。 简单的。 嗯,不。 可以说应该内置或绝对应该易于实现的功能实际上是不必要的困难。 WordPress 通过使用旧帖子的存档术语来混淆水域也无济于事。
在本文中,我将向您展示如何使用 Edit Flow 插件来归档内容以完成繁重的工作。
注意:本文中描述的方法适用于帖子、页面和自定义帖子类型。 为了方便起见,我使用了“post”一词。
为了提供归档,我们需要在发布过程的末尾添加另一个步骤,即“已发布”之后的选项,通过添加新的帖子状态“已归档”。 归档帖子是一件简单的事情,只需将帖子状态更改为新状态,并确保存档的帖子不会出现在网站的任何位置,包括搜索结果和菜单中。
WordPress 有八个内置的帖子状态,添加到列表非常容易。 但是,简单的任务,例如在帖子编辑屏幕上的发布元框中的帖子状态下拉列表中添加新状态,是非常困难的。 由于 WordPress 本身没有有用的过滤器或操作,最常见的解决方案是使用 JQuery 辅助的 HTML 杂技将新状态强制进入浏览器的用户界面。 不完全是开发最佳实践。
幸运的是,Edit Flow 插件可以帮助我们扩展发布工作流程,同时避免客户端 HTML 争吵。
Edit Flow 具有许多出色的功能,可用于在团队环境中管理帖子。 我们不会在这里讨论它们,但我建议在 WPMU.org 上阅读 Paul Kaiser 对 Edit Flow 的评论。
现在,我们只需要启用 Edit Flow 的 Custom Statuses 模块,因此安装后,单击主菜单中的 Edit Flow 并禁用除 Custom Statuses 之外的所有模块。
单击自定义状态,然后,
现在,在帖子编辑屏幕上的发布元框中,状态下拉菜单将显示自定义状态,包括新的存档状态。
要存档帖子,只需选择“存档”并单击“更新”。 这将从前端删除帖子,包括搜索。 您还会看到一个包含帖子计数的“存档”链接添加到帖子列表页面顶部的状态链接,让您可以快速轻松地访问存档帖子。
WordPress 在构建菜单时会忽略状态。 如果您在菜单中放置了一个页面,那么即使它的状态是已归档或实际上是草稿,它也会显示出来。
为了避免每次存档页面时都检查菜单,请在您的 函数.php 文件或一个简单的插件:
function remove_archived_from_menu($post) {
_wp_delete_post_menu_item($post->ID);
}
add_action( 'publish_to_archived', 'remove_archived_from_menu');
这与每次帖子更改状态时触发的状态更改操作挂钩。 在这种情况下,我们对从“发布”到“存档”的更改感兴趣(草稿项目不太可能出现在菜单中)。 当发生这种变化时,我们想删除任何带有帖子 ID 的菜单项。
存档内容是内容管理系统的一项相当基本的功能,WordPress 还没有内置此功能有点令人惊讶。 推出自己的解决方案很麻烦,最简单的解决方案是大多数开发人员都无法接受的 hack。
使用 Edit Flow 提供归档是一种直接的、无破解的解决方案,它不仅提供简单的归档功能,而且还介绍了强大的内容管理插件。
图片来源:Hannes Grobe
标签:Demand feedback