功能使用单独的.php文件-如何在现场运行?

时间:2018-10-17 作者:BruceWayne

而不是陷入我孩子的主题functions.php 文件,我想有一个单独的。具有各种函数的php文件,我可以在functions.php (和其他文件中)。

我已经创建了my-custom-functions.php 在我的孩子主题中functions.php 生命。

以下是文件夹结构:

wp-content
    themes
        grow-minimal-child
            functions.php
            my-custom-functions.php
的代码my-custom-functions.php:

<?php

function js_log($msg){
  return "<script type=\'text/javascript\'>alert(\'$msg\');</script>";
}

echo js_log("Hello!");
以及functions.php:

<?php
include_once(get_theme_roots() . \'/grow-minimal-child/rs-custom-functions.php\');
但是,当我加载任何页面时,会出现以下错误:

警告:include\\u once(/themes/grow-minimal-child/my-custom-functions.php):无法打开流:在/opt/bitnami/apps/wordpress/htdocs/wp-content/themes/grow-minimal-child/functions中没有这样的文件或目录。php在线2

我需要修复什么,它看起来像include_once 正在寻找functions.php?

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

get_theme_roots()get_theme_root() 并不是从主题获取文件路径的合适函数。

我建议您使用get_theme_file_path() 而是:

include_once get_theme_file_path( \'grow-minimal-child/rs-custom-functions.php\' );

SO网友:BruceWayne

错误正在使用get_theme_roots(). 这将返回相对路径。

get_theme_root() 退货/opt/bitnami/apps/wordpress/htdocs/wp-content/themesget_theme_roots() 退货/themes

通过将其切换到get_theme_root() (注意单数),它能够正确定位自定义.php 文件

SO网友:Antti Koskinen

我想你可以get_stylesheet_directory() 当您使用子主题时。

比如,include_once( get_stylesheet_directory() . \'/rs-custom-functions.php\');

结束

相关推荐

对WooCommerce的Functions.php更改不起作用

我正在尝试将其添加到函数中。php。在我的另一个站点上的测试实验室中,它可以很好地添加测试信息。但在这个网站上,我试图把它添加到什么都没有发生的情况下。该网站正在使用最新的woocommerce运行一个建筑节俭主题。有什么想法吗?我基本上只是想在每个产品页面上添加一行类似于免责声明但无法添加的文本。add_action(\'woocommerce_before_add_to_cart_form\',\'print_something_below_short_description\');