如果试图从附加了位置自定义字段的自定义帖子类型中筛选出一些返回结果,则返回的位置将为。我不太确定在查询中需要在哪里应用case语句。或者,当它从帖子类型中提取信息时,我需要将其添加到查询中。
我目前有:
<?php
$mypost = array(\'post_type\' => \'staff\', \'posts_per_page\' => 20 );
$loop = new WP_Query( $mypost );
?>
<ul>
<?php while ( $loop->have_posts() ) : $loop->the_post();?>
<?php $items = get_post_meta( $post->ID, \'elements\', true );
foreach( $items as $i){
if($i[\'location\'] = \'local\') {
echo\'<li>
<a href=" \'. get_permalink() .\' ">
<img src=" \'. wp_get_attachment_url( $i[\'small-image\'] ) .\'" />
<h4>\' . $i[\'staff-name\'] . \'</h4>
<p>\' . $i[\'short-title\'] . \'</p>
\' . $i[\'3-areas-of-focus\'] . \'
</li></a>
\';
}
}
?>
<?php endwhile; wp_reset_query(); ?>
<div class="clearfix"></div>
</ul>
我将位置的自定义字段作为复选框,因此在自定义帖子类型中显示:
local, out of town
问题是,一些工作人员可以在本地和外地找到工作地点,但有些只是本地的。
因此,我不确定是否需要在之前进行修剪分解,或者是否需要以其他方式在查询中进行查找。
最合适的回答,由SO网友:ultraloveninja 整理而成
好的,我成功了。
由于自定义字段的复选框将entires存储为逗号分隔的值,因此我需要分解分隔符,然后执行另一个循环来解析信息。
然后,我创建了两个单独的参数来分割数据并在echo中调用它。
下面是我最后的代码输出:
<?php
$mypost = array(\'post_type\' => \'staff\', \'posts_per_page\' => 20 );
$loop = new WP_Query( $mypost );
?>
<ul>
<?php while ( $loop->have_posts() ) : $loop->the_post();?>
<?php $items = get_post_meta( $post->ID, \'elements\', true );
foreach($items as $i) {
$loco = explode("," , $i[\'locations\']);
foreach ($loco as $l) {
if ($l != \'local\') {
echo\'<li>
<a href=" \'. get_permalink() .\' ">
<img src=" \'. wp_get_attachment_url( $i[\'small-image\'] ) .\'" />
<h4>\' . $i[\'staff-name\'] . \'</h4>
<p>\' . $i[\'short-title\'] . \'</p>
\' . $i[\'3-areas-of-focus\'] . \'
</li></a>
\';
}
}
}
?>
<?php endwhile; wp_reset_query(); ?>
<div class="clearfix"></div>
</ul>
我知道这可能不是最优雅的解决方案,但它适用于我的自定义帖子类型。