0

私はウェブ全体を探していましたが、これについてフリーランサーを雇おうとしましたが、運がありませんでした. 検索中に、ワードプレスで選択したカテゴリから人気のある投稿を取得する方法を見つけましたか? & http://www.queness.com/code-snippet/6546/how-to-display-most-popular-posts-from-a-specific-category-in-wordpressそしてそれは基本的に私が欲しいものですが、私はそこから取得した情報を分割して、投稿をランク付けできるようにします。

<?php
$args=array(
  'cat' => 3, // this is category ID
  'orderby' => 'comment_count',
  'order' => 'DESC',
  'post_type' => 'post',
  'post_status' => 'publish',
  'posts_per_page' => 6, // how much post you want to display
  'caller_get_posts'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) { ?>
<ul>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php    the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php  endwhile; ?>
</ul>
<?php }

wp_reset_query(); ?>

そのコードを使用すると、コメントによって最も人気のある投稿が取得されます。私がやりたいことは、基本的に結果を取得して、以下の例のようにランクを追加することです。

#1 - post 1
#2 - post 2
#3 - post 3
#4 - post 4
#5 - post5 last post

助けてくれてありがとう

4

2 に答える 2

1

このアイデアがあなたを助けるかもしれません。

get_comments_number( $post_id )関数を使用する

コメントの数を取得し、ランクを表示するために if else ループを実行します。

$num_comments = get_comments_number(); // get_comments_number returns only a numeric value

if ( comments_open() ) {
if ( $num_comments == 0 ) {
    $rating= 0 ;
} elseif ( $num_comments > 1 ) {
    $rating= 1 ;
} else {
    $rating= 0 ;
}
}

ありがとう

于 2012-08-27T05:55:09.723 に答える
0

あなたの現在の質問により、私は次のことを理解しています。

  1. コメントが最も多い WP データベースの投稿からクエリを実行します。
  2. 受信した投稿のランキングを訪問者に表示したい。ランキングは、投稿のコメント数によって決まります。

したがって、結果は次のようになります。

1 投稿 A (コメント数 500)

2 投稿 B (コメント数 499)

3投稿Z(コメント数200)

これは私がそれを行う方法です:

<?php
function get_popular_posts()
{

$sql="SELECT comment_count, guid AS link_to_post, post_title
FROM wp_posts 
WHERE post_status = "publish" AND post_type = "post"
ORDER BY comment_count DESC
LIMIT 5"
return $wpdb->get_results($sql, OBJECT)

}   
$post_objects = get_popular_posts();
$i = 1;
foreach($post_objects as $object)
{
echo 'Post: ' . $i . '#' . ' ' . $post_title . ' ' . $link_to_post . ' ' . $comment_count;
$i++;
}
?>

コードをテストしていません。ただし、データベースから 5 つの「上位投稿」を取得する必要があります。説明のため、comment_count に残しました。

于 2013-11-16T09:24:24.500 に答える