web-dev-qa-db-ja.com

カスタムフィールドでカテゴリページを並べ替える

これは私が尋ねた別の質問と似ていますが、このクエリ文字列がどのように機能するのかわかりません。

"category_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
redconservatory

query_postsを追加したので、Wordpressに修正したクエリを実行するよう指示できます。
$query_stringは現在のパラメータに追加させます。
orderby, meta_key, 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'); ?>
      <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++;
    ?>
2
Evan Yeung