2016-06-21 9 views
1

WP_Queryを使用してWordPressで最も多く閲覧された10件のポストを表示したいのですが、コードに何も表示されません。WordPressで最も多く閲覧された投稿を表示するにはどうすればよいですか?

コード:

$q_mostViewed = [ 
    'meta_key' => 'post_views_count', 
    'orderby' => 'meta_value_num', 
    'order' => 'DESC', 
    'posts_per_page' => '10' 
]; 

あなたは私を助けていただけますか?


全コード:

<!-- Most Viewed --> 

    <div class="home-post-wrapper col-sm-12 nopadding"> 

     <?php 
     $q_mostViewed = [ 
      'meta_key' => 'post_views_count', 
      'orderby' => 'meta_value_num', 
      'order' => 'DESC', 
      'posts_per_page' => '10' 
     ]; 
     $mostViewed = new WP_Query($q_mostViewed); 
     if ($mostViewed->have_posts()) : 
      while ($mostViewed->have_posts()) : 
       $mostViewed->the_post(); ?> 
        // Do things here 
      <?php endwhile; 
     endif; ?> 
    </div> 
+0

インデックスまたは別のページに表示しますか? –

+0

@IvanBarayev、私のホームページを構築する 'front-page.php'ファイルにあります。 – William

答えて

1

がアクティブテーマののfunctions.phpファイルを開き、次のコードを追加します。

setPostViews()関数post_views_countメタキーを使用してポストメタを追加または更新します。

single.phpファイル

オープンアクティブにテーマディレクトリからsingle.phpファイル

/* 
* Set post views count using post meta 
*/ 
function setPostViews($postID) { 
    $countKey = 'post_views_count'; 
    $count = get_post_meta($postID, $countKey, true); 
    if($count==''){ 
     $count = 0; 
     delete_post_meta($postID, $countKey); 
     add_post_meta($postID, $countKey, '0'); 
    }else{ 
     $count++; 
     update_post_meta($postID, $countKey, $count); 
    } 
} 

とループ内setPostViews()関数を配置します。

setPostViews(get_the_ID()); 

表示人気の動画投稿

次のクエリは、post_views_countメタキーの値に基づいて記事を取得します。サイドバーに、または最も人気のある投稿一覧を表示する場所に、次のコードを挿入します。

<?php 
query_posts('meta_key=post_views_count&orderby=meta_value_num&order=DESC'); 
if (have_posts()) : while (have_posts()) : the_post(); 
?> 
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> 
<?php 
endwhile; endif; 
wp_reset_query(); 
?> 
+0

甘い、私はそれを試し、ここに戻ってきます – William

+0

私は私の答えを更新しました –

+0

最初のコードはうまくいかず、2番目のコードは機能するかもしれませんが、 – William

関連する問題