【问题标题】:PHP + Wordpress function organization: Which is better, function() or Include()?PHP + Wordpress 函数组织:function() 还是 Include() 哪个更好?
【发布时间】:2012-03-03 01:00:34
【问题描述】:

这个问题有两个部分:

#1

我有一个填充函数的functions.php。我必须滚动才能找到我想要的功能,即使使用 cmets 来描绘一个结束和下一个开始的位置,有时也很难找到我想要的。

我已将函数分解为单独的 PHP 文件并使用,例如,include_once 'assets/functions/author_list.php'; 使 functions.php 文件更清晰。

所以第一个问题是:在functions.php中使用多个includes会减慢加载时间还是影响前端或后端的网站性能?

#2

第二个问题类似。如果我在函数中有如下函数。

<?php
function ao_post_meta() {
?>
                        <div class="post-meta">                     
                            <time datetime="<?php the_time('Y-m-d'); ?>"><?php the_time('M j, Y'); ?></time>
<?php if('videos' == get_post_type(get_the_ID())) { ?>
                            <a class="author-link" href="<?php bloginfo('wpurl'); ?>/character/<?php echo get_the_author_meta( 'user_nicename' ); ?>">
                                <span><?php the_author(); ?></span>
                            </a>
<?php } else { ?>
                            <a class="author-link" href="<?php echo get_author_posts_url(get_the_author_meta( 'ID' )); ?>">
                                <span><?php the_author(); ?></span>
                            </a>
<?php }?>
                            <a class="comment-link" href=""><?php echo get_comments_number(); ?></a> 
                        </div>
<?php
}
?>

将它简单地放在一个单独的 PHP 文件 my-post-meta.php 中,并在我的模板中使用 include(my-post-meta.php) 而不是作为函数调用它会更好吗?

谢谢!

【问题讨论】:

  • 如果你的函数文件真的那么大,你可以考虑将一些更通用的选项移动到plugins,将它们放在mu-plugins(必须使用)文件夹中意味着它们不能被编辑客户端并自动运行。如果所有内容都保留在您的functions.php 中并且您更改了主题,那么您将丢失这些更改,而在插件中则不会。

标签: php wordpress function code-organization


【解决方案1】:

#1 是的,它会。但我建议你不要担心,因为:

  • 如果你包含的文件数量不大,影响真的很小,根本看不到;
  • 宿主机有PHP的opcode缓存扩展,减少include调用的影响;

#2 我更喜欢将所有模板提取到单独的 phtml 文件中,这些文件存储在单独的文件夹中(例如“模板”),并在需要时包含它。它将增加函数的可读性。例如,您将有以下代码:

<?php
function ao_post_meta() {
    include './templates/mycustom-template.phtml';
}
?>

总的来说,我的建议如下:

尽量保持良好/直观的文件夹/文件结构,而不是 将所有内容放在一个文件中。它将使发展和 维护更容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-24
    • 2012-08-19
    • 1970-01-01
    • 2010-11-16
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多