2012-02-10 40 views
0

這個問題有兩個部分:PHP + Wordpress功能組織:哪個更好,function()還是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文件,我-後meta.php,並使用包括(MY-後meta.php)在我的模板,而不是調用它作爲一個功能?

謝謝!

+0

如果你的函數文件真的很大,你可以考慮把一些更通用的選項移到'plugins',把它們放在'mu-plugins'(必須使用)文件夾中意味着它們不能被編輯客戶端,並自動運行。如果一切都停留在你的'functions.php'中,並且你改變了主題,你將失去這些改變,在一個插件中你不會。 – ChelseaStats 2013-01-14 08:48:03

回答

2

#1 是的,它會的。但我建議你不要擔心它,因爲:

  • 如果你包含的文件數量不是很大,它將會產生非常小的影響,它根本看不到;
  • 在主機上有PHP的操作碼緩存擴展,它會減少包含呼叫的影響;

#2 我寧願提取所有模板到單獨的PHTML文件被存儲在單獨的文件夾(例如「模板」),幷包括其在需要時。它會增加你的功能的可讀性。例如,你將有下面的代碼:

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

一般來說我的建議是以下幾點:

儘量保持好的/直觀的組織文件夾/文件結構,而不是 把一切在一個文件中。它將使開發和保持更容易。

相關問題