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

时间:2014-11-14 01:48:35

标签: wordpress-plugin wordpress

我有一个共同的设计模式我不完全确定如何在WordPress中最好地执行。布局是概述页面上的后期预告(标题,修剪的正文,图像)的列表。让我们说example.com是一个划船安全公司,在example.com/classes中,使用archive.php或archive- $ posttype.php列出了他们的班级类型的帖子

到目前为止,它已经失去了简单和默认的WordPress行为。但是,我希望在此概述页面上提供有关此类信息的一些介绍信息。此外,我们假设我假设有10个自定义帖子类型,每个人都会遵循这种模式,并在档案页面上有一个列表和一般介绍段落。

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

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

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

3 个答案:

答案 0 :(得分:2)

阅读有关创建帖子类型的信息,有一个for archive选项,将其设置为no,它不会为列表视图等创建标准URL。您可以修改archive.php以包含所有帖子类型。

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

  1. 自定义帖子类型名称
  2. 帖子类型的参数(谷歌创建帖子类型)
  3. 自定义分类
  4. 管理界面的元框(建议使用自定义字段...)
  5. Wordpress如果发现posttype是public& has_archive将使用适当的模板解析任何对post类型的url请求...例如帖子类型为“mypost”。在这种情况下,键入www.example.com/mypost将返回主题中的归档视图(archive.php或archive-mypost.php)。此文件位于您的主题中,您可以对其进行修改以包含所有帖子类型的存档(将get_posts替换为wp_query以完全控制帖子)

    在这些存档页面上,您将看到一个名为get_posts / wp_query的函数,然后是标准循环结构,以遍历每个项目。这些函数查询数据库中的wp_posts表以返回您正在查询的post_type的行(要求函数查找)(请参阅数据库和wp_posts中的post_type列)。还有一个辅助表来存储无限的额外字段(在理论上并没有把我的内存限制推到一边,在额外的字段上没有WP限制)在名为post_meta的表中使用post id (wp_posts中行的唯一标识符)。您可以使用get_post_meta()(google it)

    来显示此信息

    那么假设安装了一个主题,你会在哪里离开? (最好在这里创建一个儿童主题)

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

答案 1 :(得分:0)

register_post_type()description arg,默认为空字符串。您可以使用它并获得如下的描述:

$obj = get_post_type_object( 'my_post_type' );
echo $obj->description;

答案 2 :(得分:0)

如果我理解正确,您只需要为每种帖子类型加载一个不同的描述,但维护一个archive.php,基本上,您只需要像这样显示描述即可:

<?php
if (get_the_post_type_description()) {
     echo get_the_post_type_description();
}
?>