使用自定义字段对类别页面进行排序

时间:2011-02-26 作者:redconservatory

这类似于我问的另一个问题,但我无法识别这个查询字符串是如何工作的。

我有一个名为“category\\u order”的自定义字段,我想按此顺序(而不是日期)对我的类别页面进行排序。

这是我的代码:

<?php wp_reset_query(); ?>
    <div id="content">

    <div id="postFuncs">
      <div id="funcStyler"><a href="#" class="switch_thumb"></a></div>
          <?php if (is_category()) { 
           $cat_ID = get_query_var(\'cat\'); ?>

          <?php echo \'<h2>\'; wpzoom_breadcrumbs(); echo\'</h2>\'; ?><?php } 
            elseif (!is_category() && !is_home()) { ?>
            <?php echo \'<h2>\'; wpzoom_breadcrumbs(); echo\'</h2>\'; ?>
            <?php }
            else { ?>
            <h2>Recent Videos</h2>
            <?php } ?>
    </div><!-- end #postFuncs -->

    <div id="archive">

    <?php if (have_posts()) : ?>
        <ul class="posts posts-3 grid">
            <?php  
      $i = 0;  
                while (have_posts()) : the_post();
                $i++;
            ?>

1 个回复
最合适的回答,由SO网友:Evan Yeung 整理而成

我添加了query_posts 所以我们可以告诉Wordpress要运行一个修改过的查询
$query_string 将让我们添加到当前参数上
orderby, meta_key, order 让我们通过告诉查询如何对结果进行排序来定义查询
More information on ordering by parameters

<?php wp_reset_query(); ?>
<div id="content">

  <div id="postFuncs">
    <div id="funcStyler"><a href="#" class="switch_thumb"></a></div>
    <?php if (is_category()) { 
      $cat_ID = get_query_var(\'cat\'); ?>
      <h2><?php wpzoom_breadcrumbs(); ?></h2>
    <?php } elseif (!is_category() && !is_home()) { ?>
      <h2><?php wpzoom_breadcrumbs(); ?></h2>
    <?php } else { ?>
      <h2>Recent Videos</h2>
    <?php } ?>
  </div><!-- end #postFuncs -->

  <div id="archive">

    <?php global $query_string;
    query_posts( $query_string . \'&orderby=meta_value_num&meta_key=your_custom_field"&order=ASC\');
    if (have_posts()) : ?>
    <ul class="posts posts-3 grid">
    <?php $i = 0;  
    while (have_posts()) : the_post();
      $i++;
    ?>

结束

相关推荐

Problem with WP_Query sort

我为页面编写了以下自定义查询- $menu_loop = new WP_Query( array( \'post_type\' => \'page\', \'posts_per_page\' => 50, \'post_parent\' => 616, \'order_by\' => \'post_title\', \'order\' => \'ASC\' ) ); while ($menu_loop->have_posts()) : $menu_l