【问题标题】:Archive.php Category.php or Taxonomy.php - Which is correct for my situation?Archive.php Category.php 或 Taxonomy.php - 哪个适合我的情况?
【发布时间】:2017-10-27 10:09:11
【问题描述】:

我正在使用 Genesis 框架,并且我有这个页面 (http://staging.seedcreativeacademy.co.uk/short-courses/) 显示了我的自定义帖子类型 short_courses 的类别。通过创建新的自定义分类,我已将类别名称更改为 course_type。

这就是我希望它到目前为止的工作方式(无可否认,样式需要整理!)我也在使用 CPT UI 插件。

现在,当我点击一个类别时,会在一个漂亮的砖石块中显示每个“课程”,您将在此处看到:http://staging.seedcreativeacademy.co.uk/course_type/digital-marketing/

但是,我不希望这些页面看起来像这样,我尝试为以下内容添加自定义模板:

存档-short_courses.php 和分类-short_courses.php

存档-course_type.php & 分类-course_type.php

但它似乎根本没有改变布局......

一旦我通过了这个障碍,我会想为这些短期课程更改 single.php 页面,但我想我会先从这个开始。

我不确定 Genesis 是否会阻止它并设置站点范围的默认值?我知道是否为存档设置设置了站点范围的默认设置,但我找不到任何关于模板的信息,而且我不知道我是否应该在 archive.php 页面、category.php 寻呼机或 taxonomy.php 页面上搜索教程......

有人可以帮我澄清一下吗?

【问题讨论】:

  • 能否请您在 taxonomy-course_type.php 中添加 php 代码
  • 我看到添加样式的是您的子主题。你可以看到 body 类有 : masonary ,然后在样式中它有样式......你需要摆脱那个 body 类。让我用代码发布答案以更改 genesis 中的 body 类
  • 我目前只有一个文本 div 在那里看到它正在被拾取......就像我在单个模板上工作的一样......我会看看插件问题。 .. 我禁用了一些插件,但实际上有一个名为 page-masonry.php 的页面模板 .. 看看那个
  • 你需要有 genesis();作为模板中的最后一行,还调用了 Genesis 类。
  • 啊我明白了!一旦我删除 page-masonry.php,事情就开始正常工作了!我必须想办法正确关闭它,因为我可能想为博客保留这个布局!

标签: php wordpress custom-post-type custom-taxonomy genesis


【解决方案1】:

course_type 是术语名称,而不是分类名称。 所以,这些对你的情况是正确的:

category-course_type.php(category-{slug}.php 是正确的格式。所以检查 course_type 是否是该类别的正确 slug)

single-short_courses.php

以防万一,在进行这些更改后,尝试通过设置->永久链接->保存重新加载永久链接。

【讨论】:

  • 我认为 OP 有自定义分类法,称为: course_type ,所以这个答案看起来无效。 @ShaunTaylor 如果仍未解决,请再次更新您的问题,是的,您可以将其称为 Custom Taxonomy (course_type) ,似乎正在发生其他事情,因为您的目标模板看起来不错,只是 genesis 使用钩子,所以该功能可能是通过一个钩子包含在你的模板上,你必须 remove_action...
  • 自定义分类:course_type .... 自定义术语:数字营销,本页:staging.seedcreativeacademy.co.uk/course_type/digital-marketing
  • 单曲效果很好,但 category-course_type.php 不是这样...我正在使用 CPT UI 并更改我的自定义帖子类型的类别我添加了一个新的分类并分配了它t CPT - 所以我只是检查这绝对应该是 category.php 而不是 taxonomy.php?
  • 谢谢@Mohsin 刚刚看到你的重播......你说得对 - course_type 确实是一个自定义分类......但我无法识别 taxonomy-course_type.php......我已经更新我对这些信息的问题,如果这就是你的意思......
  • 类别是一个分类。所以如果你使用它而不是类别,分类是正确的。我不知道您网站中的 course_type 是什么 - 默认类别(在这种情况下是一个术语)或自定义分类名称。如果是自定义分类法,那么 taxonomy-course_type.php 和 taxonomy-course_type-digital-marketing.php 都可以。
【解决方案2】:

看起来您的主题或某些插件正在将 masnory 类添加到 body 标记,然后由您的子主题设置样式。你需要从你的 body 标签中过滤掉那个类,然后样式可能会变成非砌体样式。

将以下代码添加到您的 taxonomy-course_type.php 文件中,并确保您有 genesis();调用作为模板中的最后一件事。

add_filter('body_class', 'remove_body_class', 20, 2);

function remove_body_class($wp_classes)
    {
        foreach($wp_classes as $key => $value)
            {
                if ($value == 'masonry') unset($wp_classes[$key]);
            }

        return $wp_classes;
    }

上面可能应该在自定义分类模板中,它也有 genesis();作为最后一行。

【讨论】:

  • 抱歉 - 你的意思是我应该使用 taxonomy-course_type.php 而不是 category-course_type.php?
  • 忽略这个问题 :) - 然而,这段代码似乎并没有删除砌体类......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 2011-06-30
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多