是否应该在wp-content目录下创建自定义目录?

时间:2021-08-24 作者:Ryan

另一个question 询问有关在wp-content 目录

如果需要调用自定义文件,例如CSS,那么应该使用自定义目录,例如。css 创建于wp-content e、 g。wp-content/css?

功能wp_upload_dir() 返回到的路径wp-content/uploads 目录,并且似乎没有只返回路径的函数wp-content.

这是否意味着自定义目录(如css 目录应在下创建wp-content/uploads 相反

article 在添加CSS或JavaScript资源时,建议将其上载到子主题目录的根目录。如果有其他自定义资产,例如字体,该怎么办?

相反,另一个article 建议在根目录中创建一个子目录,例如。public_html/subdirectory

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

如果需要调用自定义文件(如CSS),是否应在wp内容(如wp内容/CSS)下创建自定义目录(如CSS)?

不,从不。在任何情况下都不应这样做

主题资产属于主题。插件资产属于该插件。唯一的例外是当子主题在其父主题中使用资产时。否则,大多数WordPress开发人员都会认为这样做是疏忽大意,对许多雇主来说,这是一个重大的危险信号。

主题文件夹应该包含所有内容。它不应在下的自定义文件夹中引用或存储资产wp-content.

这适用于您的主题所需的任何未包含在WP核心或父主题中的内容。JS、CSS、JSON、PNG、PHP等。您可以要求使用插件实现功能,或使用父主题,但不要将主题的一部分放在主题文件夹外的子文件夹中。插件也是如此。

后果是什么

以下是部分后果列表,但还有更多后果:

您的主题将立即失败。org review以及theme market places的review用于测试和检查的自动工具将不再正常运行,主题上传页面将不再完全安装您的主题,因为它不知道您的自定义文件夹,主题更新将不再完全更新您的主题,这样做会导致冲突,尤其是在多站点安装上,缓存和优化插件可能会破坏您放置在自定义文件夹中的资产,或者无法提取这些资产,构建不良的缓存插件甚至可能会使用css 子文件夹和加班。一个构建良好的插件将使用uploads文件夹(您不应该将uploads文件夹用于主题资产,这会带来安全性和实际后果)

  • 由于文件夹映射技术不考虑自定义文件夹,某些CI部署过程需要手动修改以考虑否则将在部署时剥离这些文件夹wp-content 意味着网站已被破坏,与composer
  • 与WP CLI不兼容
    • 我的主题文件夹中的子文件夹如何

      在你的主题中,你可以根据自己的意愿组织资产,这取决于你。将它们放在根目录中,放在子文件夹中,这是您的选择,主题子文件夹结构不需要任何位置。

      唯一需要特定位置的CSS文件是style.css 它必须在根目录中,因为WordPress会查找它来读取主题名称等。同样,顶级PHP模板和functions.php 转到根文件夹。

      何时可以在中自定义文件夹wp-content 有意义吗

      我唯一一次看到在wp-content 文件夹如下:

      • vendor 由创建的文件夹composer 用于CI的PHP依赖项子文件夹的工具,如.gitlab, 或.github 如果您的站点处于版本控制中,则WP或站点不使用这些版本控制,但它们是托管平台所需的开发过程文件夹的一部分,通常是企业级不寻常体系结构的标志。一个常见的例子是托管提供商使用plugins-mu 并为客户机mu插件提供了第二个文件夹(这也表明他们从未想过用一个插入文件加载代码并让客户机使用plugins-mu )
      您可能会发现一些缓存插件使用缓存子文件夹,但没有理由不能将其移到下面uploads/.

      通常,在中创建新子文件夹的好理由wp-content 是十亿分之一,几乎总是表明开发过程中出现了问题。那些允许的边缘案例与正在运行的站点无关,或者是不寻常的高端托管设置的一部分

      那为什么这篇文章推荐wp-content/css?

      It doesn\'t.

      相反,另一篇文章建议在根目录中创建一个子目录,例如public\\u html/subdirectory

      本文不建议这样做。你错了。它建议主题文件夹的子目录,而不是wp-content. E、 g。wp-content/themes/yourtheme/css

      TLDR将您的主题资产放在您的主题中,除非您绝对需要并且不可避免,否则不要在中创建非标准文件夹wp-content<很可能您不需要它,请咨询其他WP开发人员,这些情况极为罕见。如果您需要它作为主题,则出现了严重错误

SO网友:Rodgath

Yes you c一n cre一t型e 一 d我rect型ory w我t型h类我n t型h类e wp_cont型ent型 d我rect型ory.&#x个A.;For ex个一m级ple you c一n cre一t型e wp_cont型ent型/css 一s you h类一ve descr我bed for spec我一l c一ses only. However, us我ng级 ch类我ld t型h类em级e for cust型om级 CSS f我les 我s 一dv我s一ble.

&#x个A.;

To 一ccess t型h类e wp_cont型ent型 d我rect型ory, you c一n use t型h类e WP_CONTENT_URL const型一nt型. Ex个一m级ple us一g级e:

&#x个A.;
wp_enqueue_st型yle( \'m级y-cust型om级-st型yle\', WP_CONTENT_URL . \'/css/st型yle.css\', 一rr一y(), wp_g级et型_t型h类em级e()-&g级t型;g级et型( \'五、ers我on\' ) );&#x个A.;
&#x个A.;

A.lso, you c一n use t型h类e WP_CONTENT_D我R const型一nt型 t型o 一ccess t型h类e f我les 我n cust型om级 d我rect型or我es 我n wp_cont型ent型. To 一ccess t型h类e CSS f我le use:

&#x个A.;
我nclude WP_CONTENT_D我R . \'/css/st型yle.css\';&#x个A.;
&#x个A.;