【问题标题】:wordpress template page.php being used over custom.phpwordpress 模板 page.php 在 custom.php 上使用
【发布时间】:2016-04-06 20:53:58
【问题描述】:

我正在 wordpress 上创建一个网站和主题。我无法与您共享该网站,因为它受客户密码保护。

有一个带有 slug career 的职业页面,它成功地使用了自定义模板 career.php 而不是 page.php。

但是,带有 slug contact 的联系页面使用 page.php 而不是 contact.php

我的 about 页面过去可以正常工作,使用 about.php 作为其模板,但现在它也使用 page.php。

任何想法为什么?

【问题讨论】:

  • 看看能不能在别的环境什么的重现问题;我们几乎没有什么可做的,除了根据以前的经验开始猜测,这不适合作为答案。

标签: php wordpress templates wordpress-theming


【解决方案1】:

将您的页面(您希望“联系人”使用的页面)重命名为 page-contact.php

根据评论中的问题添加

您没有使用“已定义”页面模板,因此它不会像那样显示在 body 元素中,但还有另一种方法。您可以将以下代码放入您的 functions.php 文件中,该文件将添加“page-contact”作为正文类中的附加类,您可以在您的 css 中使用它(而不是“page-template-contact”)。

add_filter( 'body_class', 'add_slug_body_class' );
function add_slug_body_class( $classes ) {
    global $post;
    $classes[] = $post->post_name;
    return $classes;
}

希望这会有所帮助。

【讨论】:

  • 在我的样式表中,我为联系页面设置了特定的样式,以便为具有 page-template-contact 类的正文设置样式。现在正文上的特定类是 page-id-683。有没有办法将该类更改为页面联系?
  • @DB1500:我已经更新了我的答案,以满足您在评论中提出的问题。希望能解决您的问题。
  • 感谢您的帮助!
【解决方案2】:

查看基本文档:

页面模板是一种特定类型的模板文件,可以 应用于特定页面或页面组。

由于页面模板是一种特定类型的模板文件,这里有 页面模板的一些显着特点:

页面模板仅适用于页面,不适用于任何其他内容类型 (如帖子和自定义帖子类型)。页面模板用于更改 页面的外观和感觉。页面模板可以应用于 单个页面、一个页面部分或一类页面。页面模板 通常具有高度的特异性,针对个体 页或一组页。例如,一个名为的页面模板 page-about.php 比模板文件 page.php 或 index.php,因为它只会影响带有“about”标签的页面。如果一个 页面模板有一个模板名称,WordPress 用户编辑页面 可以控制将用于呈现页面的模板。

https://developer.wordpress.org/themes/template-files-section/page-template-files/page-templates/

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    相关资源
    最近更新 更多