2013-12-09 45 views
0

好來組織自定義WordPress的帖子,所以我使用的插件類型和文章2帖子插件構建有一個名爲「開放」自定義後類型保存有關特定職位空缺信息的網站及其相關顧問。我需要能夠按照州(阿拉巴馬州,阿拉斯加州等)組織的頁面顯示這些帖子。我有一個解決方案,但它似乎非常低效。更有效的方式通過國家

我不會擔心太多,但它是被託管的資源非常有限,我的解決方案的服務器上,而它的工作原理我的開發服務器上的偉大,超時現場服務器上。

下面是我使用的每個狀態代碼:

<!-- -----------------------Alabama ------------------------ --> 

<!-- Pulls the list of openings --> 
<?php $loop = new WP_Query(array('post_type' => 'current-opening', 'meta_key' => 'wpcf-state', 'meta_value' => 'alabama', 'posts_per_page' => -1, 'orderby' => 'title', 'order' => 'ASC')); ?> 

<a name="alabama"> 
<?php $count = 1; ?> 
<?php while ($loop->have_posts()) : $loop->the_post(); ?> 
     <?php $cat = types_render_field("state"); 
     if($cat == 'Alabama') : ?> 
      <?php if($count == 1){ echo "<h2>Alabama</h2>"; ++$count; ++$alabama; echo "<hr />"; } ?> 

     <ul> 
     <li><h3 class="entry-title"><?php the_title(); ?></li> 
     <li><?php echo(types_render_field("position", array("show_name" => "true"))); ?></li> 
     <li><?php echo(types_render_field("enrollment", array("show_name" => "true"))); ?></li> 

     <!-- Display the connected Consultant(s) --> 
     <?php 
     // Find connected Consultants 
     $connected = new WP_Query(array(
     'connected_type' => 'consultant_to_opening', 
     'connected_items' => $post, 
     'nopaging' => true 
     )); 

     // Display connected Consultants 
     p2p_list_posts($connected, array(
      'before_list' => '<li>Consultant(s): ', 
      'separator' => ', ', 
      'after_list' => '</li>', 
     )); 
     ?> 

     <li><?php echo(types_render_field("school-district-website", array("show_name" => "true", "no_protocol" => "true"))); ?></li> 

     <?php $deadline = types_render_field("application-deadline", array("show_name" => "true", "style" => "text")); 
     if($deadline) : ?> 
      <li><?php echo $deadline; ?></li> 
     <?php endif; ?> 

     <?php $app_word = types_render_field("application-form-word", array("show_name" => "true", "link" => "true", "title" => "Download")); 
     if($app_word) : ?> 
      <li><?php echo $app_word; ?></li> 
     <?php endif; ?> 

     <?php $app_pdf = types_render_field("application-form-pdf", array("show_name" => "true", "link" => "true", "title" => "Download")); 
     if ($app_pdf) : ?> 
      <li><?php echo $app_pdf; ?></li> 
     <?php endif; ?> 

     <?php $app_link = types_render_field("application-link", array("show_name" => "true", "link" => "true", "title" => "Click Here")); 
     if ($app_link) : ?> 
      <li><?php echo $app_link; ?></li> 
     <?php endif; ?> 

     <?php $vacancy = types_render_field("announcement-of-vacancy", array("show_name" => "true", "link" => "true", "title" => "Download")); 
     if($vacancy) : ?> 
      <li><?php echo $vacancy; ?></li> 
     <?php endif; ?> 

     <?php $notes = types_render_field("notes", array("show_name" => "true")); 
     if ($notes) : ?> 
      <li><?php echo $notes; ?></li> 
     <?php endif; ?> 
     </ul> 
     <?php endif; ?> 
    <?php endwhile; ?> 

<!-- -----------------------/Alabama ------------------------ --> 

這裏的問題是,我查詢數據庫以獲取與狀態相關聯的開口,然後通過每個結果顯示每個循環然後查詢數據庫中的相關顧問。如果我只是爲一種狀態做這件事,那不是很多工作,但我必須爲所有50個州和華盛頓特區做這件事,並將它們全部顯示在一頁上。

有什麼我可以做的,以提高效率?

+0

你考慮寫一個自定義查詢要做到這一點,而不是依賴於WordPress的功能呢? – amaster

回答

0

這看起來types_render_field()功能不是很有效。我通過更換這些功能幫助自己頗有幾分內置的WordPress的功能,用於顯示自定義字段:get_post_meta()

相關問題