主题文件结构最佳实践

时间:2015-11-25 作者:at least three characters

我正在构建一个自定义主题,并希望有一个有组织的文件结构。是否有标准的最佳实践?我查看了流行初学者主题的文件结构,它们都使用不同的结构。

一些主题将重要的php文件放在includes 文件夹中的其他文件夹library 文件夹中的一些functions 文件夹在某些情况下,主题将其功能放在assets 文件夹

以下是我尊重的明显文件夹:

assets

/css

/js公司

/图像

page-templates

页面模板文件位于此处

最佳做法是在哪些文件夹中添加,例如:

自定义主题选项、循环、页脚、页眉、侧栏、自定义短代码、辅助函数和其他构成自定义主题的文件

2 个回复
最合适的回答,由SO网友:tao 整理而成

你首先需要问自己:这个主题会被我以外的其他人保留或使用吗

如果您正在创建一个将被其他人使用的主题,您应该记住,主题应该在多个用例中可重用。WP这样做的方式是通过使用儿童主题。All files in a theme will be loaded from the child theme, if they exist there, 除了functions.phpstyle.css. 因此,您应该以这样的方式组织您的文件结构:使用您的主题的人可以轻松地意识到他们需要在子主题中复制和修改哪些文件,以便以您认为不可能的方式使用您的主题。

您还应该将人们不应该处理的功能分组到几个容易更新的重文件中,并建议用户不要覆盖这些功能,将其余内容放在面向功能的文件中,这些文件可以在子主题中轻松覆盖。

一个主题的典型方案是:

/assets
    /js
    /css
    /img
/includes => put your core functionality here, especially if you go OOP
/lang     => your i18n files go here
/modules  => if you create any
这就是我要用的开胃药。当我写作时modules 我想到的高级功能只在某些特定情况下使用,在其他情况下完全关闭。如果你喜欢干净的东西,你可以搬家/modules 在里面/includes.

如果您熟悉MCV框架,那么它也是构建主题的可行模型,尽管对于普通用户来说并不容易理解。

SO网友:s_ha_dum

我忍不住要把这封信结尾为“我想说的是”;根据意见;,但作为主持人,我的投票将是决定性的,所以我将让社区来决定这一部分。我会尽量以一种不受争议的方式回答。

WordPress Core不需要任何特定的文件夹结构,除非主题位于wp-content/themes/{your_theme_name}. 如果需要,您可以将所有文件放在该文件夹中,对于一个小主题,您可能应该这样做。

随着主题越来越大,将内容分解到文件夹中对于组织来说是必要的。一个包含样式表的文件夹,一个用于Javascript,一个用于主题图像是非常合理的,但名称根本不重要,只要你不使用荒谬的名称。任何一个值得调用的程序员都能够解决这个问题js, javascript, 和scripts 很可能是同一种东西cssstylesheets, 或styles. 不要太担心。

如果你有类,我倾向于将它们分组到一个文件夹中,但同样,这是没有必要的。

我还将页面模板分组(the bundled ones don\'t always do this and in some cases do it in what I consider peculiar ways).

这让我想到。。。get_template_part() 如果您输入正确的参数,一些相关函数能够处理嵌套文件夹,但在我看来,嵌套太多会变得很尴尬,因此我会避免这些函数加载的文件超过一层或两层。

同样,所有这些都是可选的。关键考虑因素是组织的有效性。结构合理吗?有人会在稍后看到这一点并想知道你做了什么?你会在一年后回首往事,惊叹吗?

相关推荐

子主题中指向子主题的GET_TEMPLATE_DIRECTORY_URI

根据文件(https://codex.wordpress.org/Child_Themes 和https://developer.wordpress.org/reference/functions/get_template_directory_uri/), 我的理解是get_template_directory_uri() 如果在子主题中使用,将返回父主题目录的URL。但这并没有发生在我身上。在我试图发展的儿童主题中,当我使用get_template_directory_uri() 它返回子主题目录的UR