链接类别和内容的动态页面

时间:2017-09-03 作者:Devin Burke

Not new to Stack Exchange (i.e., Stack Overflow), but new to WordPress.

我想了解类别、帖子、自定义帖子类型的威力,以及使用它们生成动态内容的能力。这个问题可能看起来很狭隘,但请发挥你的想象力:这是许多WordPress网站想要实现的一般想法。

Question: 除了广泛的定制PHP编码之外,WordPress中有哪些选项可以创建以下动态生成的内容?

我想告诉大家我的衣柜里有什么,用户体验是:

用户看到一个长裤、衬衫、连衣裙的画廊(…),还有鞋子,每个都有一个缩略图clothing group. 我将添加新groups 在将来brands 我的衣柜里有。大多数人都是佩里·埃利斯,因为,你知道,我很时尚。每个brand 具有指向的缩略图和超链接brand 该网站group (例如,Perry Ellis的裤子页面)立即显示在每个brand 是特定type 那个牌子的裤子。佩里·埃利斯(PerryEllis)会列出卡其裤、休闲裤和牛仔裤,但CK只会列出牛仔裤和短裤,因为我总是在CK休闲裤上撕破洞brands 在缩略图库中列出我衣柜中所有品牌的页面,下面有项目符号列表groups (裤子、衬衫)和每个项目符号都是指向brand\'s的网站group. (即#3中的精确超链接)功能到此结束。所以这不是一个严格的层次结构:服装类别>品牌>服装类型,因为很多brands 落入许多人之手groups, 还有很多types 落入许多人之手brands.

Immediate Ideas: 我认为这是一个裤子、衬衫等的WP帖子类别。所有链接都链接到一个父WP帖子类别clothing groups. 然后对每个品牌重复上述步骤,在父WP帖子类别下Brands. 然后是衣服types 将是列表中的项目,如库或自定义帖子类型。

但这里有几个问题:您不能为帖子类别指定缩略图,这意味着两者都不能brands 也没有groups 会有缩略图。同样,服装之间也没有明确的联系groupbrand 允许URL。

我不得不想象有某种方法(本机功能、现有插件等)可以做到这一点,而不必从头创建3种新的帖子类型和我自己的插件。但我可能错了。

解决这个问题的一种方法是什么?显然,我不想为所有内容创建单独的页面/帖子,因为我希望有人能够添加新的brand, type, 或group, 用适当的WP类别或标签更新其他帖子,所有页面和图库都会自动更新,因为一切都是动态的。

有什么想法?

1 个回复
SO网友:Mihai Papuc

您使用的名称可能意味着您正在创建一个在线商店。如果是这样的话,Woocommerce 是你需要的。

如果这些名字只是为了举例说明,或者你需要对它们做些其他的事情,我想说你需要以下内容:

产品:CPT(参见Custom Post Types)Custom Taxonomies)

  • 品牌:相同
  • 类型:相同
    • 您可以决定您的分类法是分层的(如类别)还是非分层的(如标记)-这只是用于创建分类法的代码中的一个变量。如果你是WP的新手,可能代码太多了——但这是我在大约4年前在WP中学会的第一件事,从那以后我就开始这么做了。

      不过,如果您想要更简单的解决方案,您可以使用Custom Post Type UI 或任何类似的插件。

      到目前为止,您最大的问题之一尚未得到回答:如何向每个分类法添加图像。您可以找到一些自定义代码添加到functions.php 为了实现这一点,甚至有插件提供了这一功能。但我的解决方案是使用不同的插件:Advanced Custom Fields. 它真的很容易使用,并且在开发自定义主题方面帮助很大。您可以在帖子(包括CPT)、页面和分类法中添加许多类型的字段。如果您需要更多(例如,像repeater字段),他们有一个PRO版本,大约20美元/个站点,或者80美元/个不受限制的站点。

      有了这个,您的后端几乎已经设置好了。但您需要在前端显示所有数据。为此,您需要了解template hierarchy. 你不需要阅读整页,只要看看他们的图片就可以了——这足以让你产生想法。

      基本上,根据上述结构,您需要以下模板(在主题的根目录中):

      • archive-product.php: 列出所有产品single-product.php: 显示单个产品taxonomy.php (或taxonomy-clothing_category, taxonomy-brand 依此类推,如果你想让每个分类看起来都不一样):列出分类法中的所有产品,因为分类法模板列出了该分类法中的产品(帖子),而不是分类法本身,我通常使用一种解决方法来解决这种情况:我创建custom page template (或更多,如果需要不同的设计)和使用get_terms() 显示这些分类法。通常,我也会在过程中使用页面的slug,因此我会在自定义模板中使用以下代码:

        <?php 
        global $post;
        $post_slug=$post->post_name;
        $terms = get_terms( array(
          \'taxonomy\' => \'post_tag\',
          \'hide_empty\' => false,
        ) );
        ?>
        
        这样,您的站点将具有以下链接结构:

      • example.com/products/ - 您的产品列表

      • example.com/products/nice-product/ - 您的产品之一

        示例。com公司/clothing_categories/pants/-pants分类法中的产品(粗体的slug是在创建自定义分类法时设置的)

        示例。com公司/clothing_category/ - 设置为显示所有类别及其图像的自定义页面(slug在自定义页面中设置)

        我希望我的解释足够清楚,但如果有不清楚的地方,请在评论中告诉我,我会尽力更好地解释。

    结束