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

use*_*959 5 wordpress portfolio custom-post-type jetpack

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

我正在使用:WordPress v3.9.2; 主题:Point of Child ,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.

我被困在一个解决方案.

从上面的代码中,添加到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以查看更改)

在此先感谢您的帮助.

小智 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;
?>
Run Code Online (Sandbox Code Playgroud)