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个州和华盛顿特区做这件事,并将它们全部显示在一页上。
有什么我可以做的,以提高效率?
你考虑写一个自定义查询要做到这一点,而不是依赖于WordPress的功能呢? – amaster