如何将 lib 命名空间添加到 Wordpress roots sage?
How do you add a lib namespace to Wordpress roots sage?
按照 here 编写的文档,我在 lib 目录中添加了一个文件,其中包含:
<?php
namespace Theme\URIs;
/**
* Returns theme images directory uri
*/
function get_images_directory_uri() {
return get_template_directory_uri() . '/assets/images';
}
然后我尝试从模板文件调用:
<?php print Theme\URIs\get_images_directory_uri(); ?>
但是调用它,返回一个 Fatal error: Call to undefined function Theme\URIs\get_images_directory_uri()
。
解决方法是将文件添加到functions.php
中的$sage_includes
数组中,所以它看起来像这样:
$sage_includes = [
'lib/assets.php', // Scripts and stylesheets
'lib/extras.php', // Custom functions
'lib/setup.php', // Theme setup
'lib/titles.php', // Page titles
'lib/wrapper.php', // Theme wrapper class
'lib/uris.php' // Project URIs
];
这将导入要在主题中使用的文件。
目前的文档没有解释这一点。 (我假设它只是导入了 libs 目录中的所有文件...)
不是问题(我还不能评论)但是除非你改变了目录结构你的函数应该 return:
get_template_directory_uri() . '/dist/images';
由于 /assets/images
中的图像得到优化,然后复制到 /dist/images
。
按照 here 编写的文档,我在 lib 目录中添加了一个文件,其中包含:
<?php
namespace Theme\URIs;
/**
* Returns theme images directory uri
*/
function get_images_directory_uri() {
return get_template_directory_uri() . '/assets/images';
}
然后我尝试从模板文件调用:
<?php print Theme\URIs\get_images_directory_uri(); ?>
但是调用它,返回一个 Fatal error: Call to undefined function Theme\URIs\get_images_directory_uri()
。
解决方法是将文件添加到functions.php
中的$sage_includes
数组中,所以它看起来像这样:
$sage_includes = [
'lib/assets.php', // Scripts and stylesheets
'lib/extras.php', // Custom functions
'lib/setup.php', // Theme setup
'lib/titles.php', // Page titles
'lib/wrapper.php', // Theme wrapper class
'lib/uris.php' // Project URIs
];
这将导入要在主题中使用的文件。
目前的文档没有解释这一点。 (我假设它只是导入了 libs 目录中的所有文件...)
不是问题(我还不能评论)但是除非你改变了目录结构你的函数应该 return:
get_template_directory_uri() . '/dist/images';
由于 /assets/images
中的图像得到优化,然后复制到 /dist/images
。