web-dev-qa-db-ja.com

Category.phpループを「meta_value」順に並べるにはどうすればいいですか?

だから私はこのように特定のカテゴリからのすべての投稿を表示するcategory.phpの基本的なループがあります:

<?php if (have_posts()) :
    while(have_posts()): the_post();
?>
    <a href="<?php the_permalink(); ?>">
        <div>
            <h3><?php echo the_title();?></h3>
            <p><?php echo the_content(); ?></p>
        </div>
    </a>
<?php
    endwhile;
endif;
?>

私は別のページに最もお気に入りの投稿(お気に入りの数の順に投稿)を表示する別のループを持っています。そのループは:

    <?php 
    $query_args  = array(
    'post_type' => 'post',
    'posts_per_page' => 2,
    'orderby' => 'meta_value',
    'order' => 'DESC',
    'meta_query' => array(
        'relation' => 'OR',
         array(
            'key' => 'Likes',
            'compare' => 'NOT EXISTS',
            'type' => 'numeric'
         ),
         array(
            'key' => 'Likes',
            'compare' => 'EXISTS',
            'type' => 'numeric'
         )
    )
);
$loop = new WP_Query($query_args);
if ($loop->have_posts()):
    while($loop->have_posts()):
        $loop->the_post();
?>
        <a href="<?php the_permalink(); ?>">
            <div>
                <h3><?php echo the_title();?></h3>
                <p><?php echo the_content(); ?></p>
            </div>
        </a>
<?php
    endwhile;
endif;
?>

だから今私はいいねの数に基づいて特定のカテゴリからの投稿、つまりそのカテゴリからの人気のある投稿を表示するcategory.php内に別のループが欲しい。それを実現するためにこれら2つのループを組み合わせるにはどうすればよいでしょうか。任意の助けは非常に高く評価されます。

乾杯。

3
sadmansh

まず、現在のカテゴリのスラッグが必要になります。

  $cat = get_query_var('cat');
  $currentcat = get_category ($cat);

それからあなたは同じループを使うことができます。結果を現在のカテゴリに制限するには、以下を$query_argsに追加するだけです。

'category_name' => $currentcat->slug,
1
cjbj