PHP+Wordpress函数组织:function()和Include()哪个更好


PHP + Wordpress function organization: Which is better, function() or Include()?

这个问题有两个部分:

#1

我有一个functions.php,它被填充了函数。我必须滚动才能找到我想要的函数,即使有注释来描述一个函数的结束和下一个函数开始的地方,有时也很难找到我想要什么。

我已经将函数分解为单独的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(mypost-meta.PHP),而不是将其作为函数调用,这样更好吗?

谢谢!

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

  • 如果你包含的文件数量不多,它的影响就很小,根本看不见
  • 主机上有PHP的操作码缓存扩展,可以减少include调用的影响

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

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

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

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