Wordpress - 在帖子类型查询中按类别抓取项目

时间:2011-11-03 16:49:14

标签: wordpress

我在Wordpress中设置了自定义帖子类型。客户端可以上传PDF格式的文档。这些文件分为两类 - “可下载的表格”和“菜单”;该类别的自定义字段名称为'document_category'

我正在尝试运行查询,只在页面上显示“可下载表单”。这是我通常使用的代码 - 我希望有人可以帮助我添加我需要的代码以使其工作?

<?php       
$args = array('post_type' => 'prep_forms', 'posts_per_page' => -1);
// The Query
$the_query = new WP_Query( $args );
// The Loop
$i = 0;
while ( $the_query->have_posts() ) : $the_query->the_post();
?>
<li><a href="<?php echo get_field('document_pdf_file'); ?>"><?php the_title(); ?></a></li>
<?php
$i++;
endwhile;
// Reset Post Data
wp_reset_postdata();
?>

感谢。

3 个答案:

答案 0 :(得分:0)

好吧,你可以使用is_category();内部循环,只显示那些帖子,如此(使用相同的代码):

<?php       
$args = array('post_type' => 'prep_forms', 'posts_per_page' => -1);
// The Query
$the_query = new WP_Query( $args );
// The Loop
$i = 0;
while ( $the_query->have_posts() ) : $the_query->the_post();

if(is_category('Sownloadable Forms')){  // here the condition

?>
<li><a href="<?php echo get_field('document_pdf_file'); ?>"><?php the_title(); ?></a></li>
<?php
$i++;
} // here ends the IF statment
endwhile;
// Reset Post Data
wp_reset_postdata();
?>

更好的是:http://codex.wordpress.org/Function_Reference/is_category

希望有所帮助。

答案 1 :(得分:0)

<?php       
$args = array('post_type' => 'prep_forms', 'posts_per_page' => -1);
// The Query
$the_query = new WP_Query( $args );
// The Loop
$i = 0;
while ( $the_query->have_posts() ) : 
    $the_query->the_post();
    // Get all Advanced custom fields
    $my_custom_fields = get_fields(get_the_ID());
    // Does document_category field exists and is it equal with 'Downloadable Forms'?
    if(isset($my_custom_fields['document_category']) && $my_custom_fields['document_category'] == 'Downloadable Forms'):
?>
<li><a href="<?php echo get_field('document_pdf_file'); ?>"><?php the_title(); ?></a></li>
<?php
    endif;
$i++;
endwhile;
// Reset Post Data
wp_reset_postdata();
?>

我使用了高级自定义字段插件的get_fields($post_id = false)功能,该插件返回所有帖子的自定义字段的数组,然后根据您的需要对其进行过滤。

希望我帮助

答案 2 :(得分:0)

为什么不简化并根据自定义字段数据设置查询?

<?php 
$count = 1;
$args = array(
  'post_type' => 'any',
  'posts_per_page' => 4,
  'meta_key' => 'display', 
  'meta_value' => 'true'
);

$query = new WP_Query();$query->query($args); 
while ($query->have_posts()) : $query->the_post();                      
$do_not_duplicate[] = $post->ID;
?>
    <!-- query content -->
    <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php printf( esc_attr__( 'Permalink to %s', 'advanced' ), the_title_attribute( 'echo=0' ) ); ?>" ></h2>
    <?php the_excerpt() ;?>
    <!-- query content -->
<?php $count++; endwhile; wp_reset_query(); ?>

这样,任何包含自定义字段键显示和自定义字段值 true 的帖子都会显示在您的查询中。