首页 > 解决方案 > 从父文件夹中获取同名文件的功能

问题描述

我已经为WPBakery. 在functions.php文件中,我目前有以下内容:

add_action( 'vc_before_init', 'vc_before_init_actions' );

function vc_before_init_actions() {
    require_once('vc_elements/text-image/init.php' );
    require_once('vc_elements/text/init.php' );
}

但是,随着我构建更多自定义元素,该列表将非常庞大。我要做的是加载init.php每个vc_elements子文件夹中命名的所有文件。

这是我当前的文件夹结构:

vc_elements
   text-image
      init.php
   text
      init.php

最干净的方法是什么?

标签: phpwordpresswpbakery

解决方案


我要做的是在每个 vc_elements 子文件夹中加载所有名为 init.php 的文件。

假设您仅指“vc_elements”的直接子目录,您可以使用带有“*”的 GlobIterator 作为子目录通配符:

$myInitFiles = new GlobIterator('/path/to/vc_elements/*/init.php');
foreach ($myInitFiles as $file) {
  require_once( $myInitFiles->key() );
}
unset($myInitFiles);  // release object memory for garbage collection

如果需要,您显然可以将其转换为更通用的功能。


推荐阅读