ACF Wordpress&排序类别存档页面

时间:2015-03-12 11:53:50

标签: php wordpress advanced-custom-fields

我正在使用acf wordpress插件将一个布尔字段(featured_project)添加到自定义帖子(项目)。

我正在尝试对类别存档页面上的帖子进行排序,以显示顶部显示的帖子和底部非特色的帖子。

有多个类别具有相同类型的帖子。

我已经阅读了解决方案使用的其他类似问题' wp_query'或pre_get_posts但我似乎无法让它发挥作用。

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <?php if ( get_field('featured_project') ) { ?>
        <article class='project featured' id="post-<?php the_ID(); ?>" <?php post_class( 'cf' ); ?> role="article">
        <a href='<?php the_permalink(); ?>'>
           <h3 class="h2"><?php the_title(); ?></h3>

           <?php    
                $url =  wp_get_attachment_url( get_post_thumbnail_id() );      
                $width = 300;                                                                  
                $height = 200;                                                                 
                $crop = true;                                                                 
                $retina = false;                                                             

                // Call the resizing function (returns an array)
                $image = matthewruddy_image_resize( $url, $width, $height, $crop, $retina ); 

           ?> 
           <img src='<?php echo $image['url']; ?>'/ alt='<?php the_title(); ?>'>
        </a>    
        <?php // the_post_thumbnail( 'projects-full', false ); ?> 

        <div class='excerpt'><?php the_excerpt(); ?></div>
        </article>
        <?php } else { ?>

是类别文件中代码的一部分。

由于

更新:仍未找到解决方案,其他任何人都可以加入吗?

1 个答案:

答案 0 :(得分:0)

问题和解决方案不在这个代码块上......问题在于查询, 要解决此问题,您还应该查询元键

<?php
$args = array_merge( $query, 
    array( 
        'meta_query' => array(
        'relation' => 'AND',
            array(
                'key' => 'featured_project',
                'value' => 1, // test if your value is a number or string
                //'type' => 'BINARY', //Maybe you should cast the meta value
                'compare' => '='
                ),
            ),
        ) 
    );
    $custom_query = new WP_Query( $args ); ?>
?

<?php if ($custom_query->have_posts()) : while ($custom_query->have_posts()) : $custom_query->the_post(); ?>
    <?php if ( get_field('featured_project') ) { ?>

也许您还应该在查询中添加orderby(类似'orderby' => ' meta_value_num date'