5

我有一个使用新的 Jetpack Portfolio Project 自定义帖子类型的子主题,并希望修改 archive.php 以显示自定义结果。

我正在使用:WordPress v3.9.2;主题:Point的子项,Jetpack 安装时启用了自定义内容类型,并在设置中选择了投资组合项目。(没有安装其他实现投资组合功能的插件。)

根据法典

模板文件

以同样的方式,可以分别使用 single.php 和 archive.php 模板文件显示单个帖子及其档案,

  • 自定义帖子类型的单个帖子将使用 single-{post_type}.php
  • 他们的档案将使用archive-{post_type}.php
  • 如果你没有这个帖子类型存档页面,你可以通过 BLOG_URL?post_type={post_type}

其中 {post_type} 是 register_post_type() 函数的 $post_type 参数。

我的理解是,如果您在子主题中创建名为 single-jetpack-portfolio.php 和 archive-jetpack-portfolio.php 的文件,WordPress 将自动使用这些文件分别代替 single.php 和 archive.php。

但是,我的子主题成功调用了 single-jetpack-portfolio.php,但完全忽略了archive-jetpack-portfolio.php,而是在子主题中调用了archive.php。

我被困在一个解决方案中。

从上面的 codex 中,添加到 URL“?post_type=jetpack-portfolio”确实会导致子主题正确使用archive-jetpack-portfolio.php,但是我是否需要手动修改每个 URL 以明确指定这一点?WordPress 不应该像对 single-jetpack-portfolio.php 文件那样自动检测到这一点吗?我该如何解决这个问题?

我努力了:

  • 重置永久链接以防万一(更改设置中的选项并保存并再次返回)
  • 除了archive-jetpack-portfolio.php之外,给child添加一个archive.php文件(我最初在child中没有archive.php,所以它使用了parent的archive.php)
  • 发布新的 Jetpack 投资组合项目并更新现有页面(我在某处读到发布某些内容可能会触发 Wordpress 以查看更改)

提前感谢您的帮助。

4

2 回答 2

2

我遇到了 OP 描述的相同问题。当我访问 mydomain.com/portfolio 时,它将使用自定义存档模板。当我尝试查看项目类型时,它默认为常规的archive.php。我想知道 OP 是否在没有意识到的情况下查看项目类型页面。

我的解决方案是创建一个分类模板文件。在玩了它之后,我发现

  • 分类法.php
  • 分类-jetpack-portfolio-type.php
  • 分类-jetpack-portfolio-type-{name-of-project-type}.php

一切正常,具体取决于您想要获得的具体程度。

wordpress codex 上有更多信息:http: //codex.wordpress.org/Template_Hierarchy#Custom_Taxonomies_display

希望这可以帮助某人。

于 2014-12-21T07:15:11.497 回答
1

我将在接下来的几天里工作。

archive.php你应该在孩子的第一行试试这个:

<?php
    if( is_post_type_archive('jetpack-portfolio') )
        get_template_part('content', 'jetpack-portfolio');

    elseif( is_tax('jetpack-portfolio-type') || is_tax('jetpack-portfolio-tag') )
        get_template_part('archive', 'jetpack-portfolio');

    else continue;
?>
于 2014-08-23T02:45:56.497 回答