在WordPress中使用Jetpack Portfolio Project子主题不会调用存档自定义模板

时间:2014-08-12 14:17:17

标签: wordpress custom-post-type portfolio jetpack

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

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

According to the Codex

  

模板文件

     

同样可以使用单个帖子及其档案进行显示   single.php和archive.php模板文件分别为

     
      
  • 自定义帖子类型的单个帖子将使用single-{post_type} .php
  •   
  • 及其档案将使用archive- {post_type} .php
  •   
  • 如果您没有此帖子类型存档页面,则可以传递BLOG_URL?post_type = {post_type}
  •   
     

其中{post_type}是$的post_type参数   register_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应该不会自动检测到这一点,就像单一jetpack-portfolio.php文件一样吗?我该如何解决这个问题?

我试过了:

  • 重置固定链接以防止与此相关(更改“设置”中的选项并保存并再次返回)
  • 除了archive-jetpack-portfolio.php之外,还将一个archive.php文件添加到子节点(我最初在子节点中没有archive.php,所以它使用了父节点的archive.php)
  • 发布新的Jetpack投资组合项目并更新现有页面(我在某处发布某些内容可能会触发Wordpress查看更改)

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

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

我的解决方案是创建分类模板文件。在玩完之后我想出了

  • taxonomy.php
  • 分类法传送插座-组合-type.php
  • {名称的项目类型}
  • 分类法传送插座-投资组合类型 - .PHP

所有工作都正确,具体取决于你想要的具体程度。

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

希望这有助于某人。

答案 1 :(得分: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;
?>