在模板中包含php文件

时间:2014-01-28 作者:Ahmed Saad

比如在我的主题函数中。php文件中,我包含了一个php文件,该文件只能在管理控制面板中访问,并命名为主题选项。php。

require_once ( get_template_directory() . \'/theme-options.php\' );
正如我所说,只有在包含以下基本结构的情况下,才能在管理控制面板中访问此文件:

function my_theme_init(){
    register_setting(\'my_theme_group\', \'my_theme\');
}
add_action( \'admin_init\', \'my_theme_init\' );

function theme_page_function() {
    add_menu_page( \'My New Theme\', \'mynewtheme\', \'manage_options\', \'mynewtheme\', \'theme_options_do_page\');
}
add_action( \'admin_menu\', \'theme_page_function\' );

function theme_options_do_page() {
    ?>
    <div class="content">
    <!-- options content -->
    </div>
    <?
}
我的问题是,从前端浏览时是否会执行此文件?

该文件包含在公共功能中。php文件,但函数仅在管理控制面板中工作。

我问这个问题是因为主题选项。我正在创建的php文件将包含大量mysql查询,我不希望每次普通访问者访问网站时都运行它。

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

我的问题是,从前端浏览时是否会执行此文件?

嗯,是和否。

当使用所讨论的主题时,您的文件将包含在前端,但是由于您的代码被钩住了,只钩住了管理员的钩子,因此没有真正执行任何操作。文件已被读取,但代码除了在后端之外什么都不做,因此您真正做的只是使用10000秒(如果是这样的话)和少量内存。我很怀疑你会注意到这一区别。钩子应该解决问题,而不需要你做任何特殊的事情。

SO网友:Nikola R.

是的,功能。active theme目录中的php是在前端执行的,但有一个简单的解决方案。使用is_admin() 告诉用户是否正在查看WP的后端

<?php
if(is_admin()) {
  require_once( get_template_directory() . \'/theme-options.php\' );
}
在您的功能中。php

结束

相关推荐

WP_Query in functions.php

我有一些代码要转换成函数。它工作得很好,直到我将其包装到所述函数中: $args = array( \'posts_per_page\' => -1, \'post_type\' => \'asset\', \'category_name\' => $cat ); $cat_query = new WP_Query( $args );