2013-12-09 42 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()

相关问题