是否应该将模板文件复制到子主题进行编辑?

时间:2016-03-14 作者:Sabuncu

我知道这种风格。在编辑css文件以进行更改之前,需要将其复制到子主题。对于模板也是这样吗。php文件?如果是这样,我是只需要复制特定的模板文件,还是应该复制所有模板文件?

UPDATE:

包括/面包屑。php:

<?php
if ( is_front_page() ) return;

if ( class_exists( \'woocommerce\' ) && is_woocommerce() ) {
    woocommerce_breadcrumb();
    return;
}
?>

<div id="breadcrumbs"<?php if ( function_exists( \'bcn_display\') ) echo \' class="bcn_breadcrumbs"\'; ?>>
    <?php if(function_exists(\'bcn_display\')) { bcn_display(); }
          else {
            $et_breadcrumbs_content_open = true;
    ?>
            <span class="et_breadcrumbs_content">
                <a href="<?php echo esc_url( home_url() ); ?>" class="breadcrumbs_home"><?php esc_html_e(\'Home\',\'Nexus\'
...

3 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

通常,您不需要将完整的父样式表复制到子主题,只需将特定的代码复制到子主题的样式表并进行修改即可。

至于functions.php 和任何其他函数相关的文件,您不能将其复制到子主题,因为这将导致无法重新声明致命错误。这方面有一些评论,所以一定要使用网站搜索。

应始终在子主题中修改模板文件(如果您不是父主题的作者),因为模板是主题领域。您只需复制受影响的模板。应该注意的是,对于页面模板,您需要保持与父主题相同的文件结构。

真正的问题是,您是否应该复制模板并对其进行修改。随着大量本机过滤器和操作可用于过滤模板标记、模板部分、循环本身、帖子数组、导航菜单、页眉和页脚等,通过自定义插件更改内容变得越来越容易,而无需直接更改模板文件本身。通过各自的过滤器和插件的操作更改这些细节,还有一个额外的好处,就是可以在任何给定的时间跨任何使用的主题进行这些更改。在跳入并将模板文件复制到子主题以进行修改之前,坐下来决定需要更改什么,以及更改主题时是否需要更改,这将是有益的。

一些大型商业主题添加了特定于主题的过滤器,您可以使用这些过滤器过滤模板中的某些内容。在大多数情况下,您可以通过这些过滤器来更改模板,在这种情况下,您可以在子主题的函数文件中使用这些过滤器来相应地更改父模板的输出。

如果您的更改无法通过过滤器和操作完成,那么是的,正确的方法是将该特定模板复制到您的子主题并在那里进行修改。唯一的缺点是您需要手动更新这些模板

SO网友:Tom J Nowell

您应该只复制要更改的文件,否则当父主题更新时,它将加载子主题中未编辑的过期文件

这样想,子主题中的任何模板都会覆盖父主题。style.css, functions.php etc不是模板,不以这种方式工作

SO网友:Ameen Khan

您必须复制要附加的文件,例如,如果文件位于themes\\abc\\xyz\\thefile中。因此,您应该创建与父主题相同的路径。例如,子主题\\abc\\xyz\\thefile。php

希望这能回答问题。

相关推荐

Updating modified templates

我想调整一些。php模板文件在我的WordPress主题中,我知道正确的过程是将相关文件复制到子主题文件夹中并在那里编辑文件,这样我的修改就不会在将来的主题更新中丢失。但这是否意味着我将无法从主题更新中获益,因为我将文件放在了我的子主题文件夹中?这可能不是一件好事,因为主题更新可能添加了一些有用的特性,甚至修复了我最初需要对代码进行调整的问题!这方面的常见解决方案是什么?有人推荐了一款Diff应用程序——这是人们常用的吗?