使用自定义分类法的query_posts

时间:2012-07-02 15:47:49

标签: php wordpress wordpress-theming taxonomy custom-post-type

这是我关于堆栈溢出的第一篇文章!

我是一名WordPress初学者,几乎完成了我的第一个涉及使用基本属性列表的主题。

我已经尝试通过检查来解决这个问题..

..以及许多谷歌搜索。我似乎无法找到任何可以帮助我的东西。

我无法按照我需要它们出现的顺序显示名为'tfg-properties'的自定义帖子类型中的帖子。

自定义分类 - 'featured-properties' - functions.php

register_taxonomy('featured-properties', 'tfg-properties', array(
        "hierarchical" => true,
        "label" => "Featured Properties",
        'update_count_callback' => '_update_post_term_count',
        'query_var' => true,
        'rewrite' => array( 
            'slug' => 'featured-property',
            'with_front' => false ),
        'public' => true,
        'show_ui' => true,
        'show_tagcloud' => true,
        '_builtin' => false,
        'show_in_nav_menus' => false)
    );

我为这个名为'featured-properties'的帖子类型创建了一个自定义分类法,我想要做的就是从分类中获取帖子 - 在其他帖子之前显示'featured-properties'。

我能够使用类别来实现这一目标,但由于我也加入了一个博客,这将无法运作..

以下是我查询帖子的方式..

按类别ID查询帖子 - page.php

// Get all posts from featured properties
    $catId = get_cat_ID('Featured Property');

    query_posts('post_type=tfg-properties&cat=' . $catId);

// begin the loop
while( have_posts() ): the_post(); ?>
    <li class="single-prop">
        ...
    </li>
<?php endwhile; ?>

    

// Get all posts from featured properties

    query_posts('post_type=tfg-properties&cat=-' . $catId);

// begin the loop
while( have_posts() ): the_post(); ?>
    <li class="single-prop">
        ...
    </li>
<?php endwhile; ?>

有没有什么办法可以在自定义的帖子之前对其他帖子进行排序?

提前致谢!

1 个答案:

答案 0 :(得分:-1)

你可以使用两个循环 - 第一个循环只显示分类 - 然后第二个循环显示所有其他循环,不包括分类。

<?php 
$catId = get_cat_ID('Featured Property');
global $post; 

rewind_posts();
$query = new WP_Query(array(
 'cat' => $catId, 
 'post_type' => 'tfg-properties',
));
while ($query->have_posts()) : $query->the_post(); 
?>

<li class="single-prop"></li>

<?php 
endwhile; 
wp_reset_postdata();
?>

<?php 
rewind_posts();
$query = new WP_Query(array(
 'cat' => '-' . $catId, 
 'post_type' => 'tfg-properties',
));
while ($query->have_posts()) : $query->the_post(); 
?>

<li class="single-prop"></li>

<?php 
endwhile; 
wp_reset_postdata();
?>