gpt4 book ai didi

WordPress 自定义帖子类型存档及描述

转载 作者:行者123 更新时间:2023-12-03 07:23:19 25 4
gpt4 key购买 nike

我有一个常见的设计模式,但我不完全确定如何在 WordPress 中最好地执行。布局是概述页面上的帖子预告片列表(标题、修剪正文、图像)。假设 example.com 是一家划船安全公司,在 example.com/classes 上有一个使用 archive.php 或 archive-$posttype.php 的类类型帖子列表

到目前为止,这是非常简单的默认 WordPress 行为。但是,我想在此概述页面上获得有关此类信息的一些介绍信息。此外,假设我有 10 种自定义帖子类型,每种类型都会遵循此模式,并在存档页面上列出一个列表和一个一般介绍性段落。

不想做的是为每种类型创建一个页面,并在页面模板中为每种类型完成自定义查询。如果有一种方法可以将描述甚至更好的自定义字段与帖子类型本身(不是在该类型的帖子上,而是在类型本身上)关联起来,那就是理想的场景。理想情况下,我希望将这一切都包含在我的 archive.php 模板中。

有人知道解决这个问题的好方法吗?

这可能有帮助,也可能没有帮助,但我将在代码中创建帖子类型,但对自定义字段本身使用高级自定义字段。

最佳答案

阅读有关创建帖子类型的内容,有一个选项“有存档”,将其设置为“否”,它不会为 ListView 等创建标准网址。您可以修改 archive.php 以包含所有帖子类型。

我认为您对服务器上 WordPress 自定义帖子类型的存在方式感到困惑。基本上它们只存在于 php 代码中,因此每次 wp 系统加载时,您的自定义代码都会运行以创建自定义帖子类型...您基本上是在这个阶段设置帖子类型的规则 - 所以

  1. 自定义帖子类型名称
  2. 帖子类型的参数(Google 创建帖子类型)
  3. 自定义分类
  4. 管理屏幕的元框(建议而不是使用自定义字段...)

如果 WordPress 发现帖子类型是公共(public)的,并且 has_archive 将使用适当的模板解析帖子类型的任何 url 请求...例如帖子类型“mypost”。在这种情况下,输入 www.example.com/mypost 将从您的主题返回存档 View (archive.php 或 archive-mypost.php)。该文件位于您的主题中,您可以修改它以包含所有帖子类型的存档(将 get_posts 替换为 wp_query 以完全控制帖子)

在这些存档页面上,您将看到一个名为 get_posts/wp_query 的函数,然后是循环遍历每个项目的标准循环结构。这些函数查询数据库中的 wp_posts 表,以返回具有您正在查询的 post_type 的行(要求函数查找)(请参阅 DB 和 wp_posts 中的 post_type 列)。还有一个辅助表,用于在名为 post_meta 的表中存储无限的额外字段(不要从字面上理解,但理论上和内存限制被抛在一边,WP 对额外字段没有设置限制),该表使用帖子 id ( wp_posts 中行的唯一标识符)。您可以使用 get_post_meta() 显示此信息(google it)

那么假设安装了主题,你会想到什么?(最好在这里创建一个子主题)

  1. 在函数文件中创建自定义帖子类型,并在参数数组中将 has_archive 值设置为 false
  2. 为函数文件中所需的自定义字段添加元框函数(google 这个,非常容易做到)
  3. 修改 archive.php 以对所有帖子类型运行新查询(google wp_query,您可以查询一系列帖子类型)
  4. 任何其他信息(例如描述、默认保存行为)都可以在函数文件中使用 php 进行设置,并 Hook 到您要修改的操作(例如保存帖子等)。

关于WordPress 自定义帖子类型存档及描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26921658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com