web-dev-qa-db-ja.com

(wp-postviewsプラグインを使用して)ループをビュー順に投稿するように変更する方法

誰かが手助けをしてくれることを願っています。私は現在、コメント数ですべての投稿を並べるページを持っていますが、ビュー数で投稿を並べるようにループを変更したいです。私は 'wp-postviews.1.50'プラグインをインストールし、各投稿のビュー数を表示するようにしました、それでその側が機能していることを私は知っていますこれは可能ですか?

これはビューの数がどのように呼ばれるかです:

<?php $views = get_post_meta($post->ID, 'views', true); ?><?php echo $views; ?>

そして、これが私が変更する必要があるループです:

<?php $posts_per_page = get_query_var('posts_per_page'); ?>
<?php $paged = intval(get_query_var('paged')); ?>
<?php $paged = ($paged) ? $paged : 1; ?>
<?php $args = array(
'posts_per_page' => $posts_per_page,
'paged' => $paged,
'more' => $more = 0,
'orderby' => 'comment_count',
'order' => 'DESC',
); ?>
<?php query_posts($args); ?>
<?php if (have_posts()) : while (have_posts()) : the_post() ;?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">

これを手伝ってくれてありがとう。

私はWordPress 3.0.4を使っています。

4
PG73

ただ更新したいと思いました。私が上に投稿したコードを更新する方法を私に示すには誰かが親切でした。それは(あなたがしていることを知っていれば)非常に単純であることがわかりました!だから私は似たようなことをしたい人のために以下に投稿しました。

<?php $posts_per_page = get_query_var('posts_per_page'); ?>
<?php $paged = intval(get_query_var('paged')); ?>
<?php $paged = ($paged) ? $paged : 1; ?>
<?php $args = array(
'posts_per_page' => $posts_per_page,
'paged' => $paged,
'more' => $more = 0,
'meta_key' => 'views',
'orderby' => 'meta_value_num',
'order' => 'DESC',
); ?>
<?php query_posts($args); ?>
<?php if (have_posts()) : while (have_posts()) : the_post() ;?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
7
PG73

私はこのようにしてそれをかなりうまく作りました:)

<?php $args = array(
  'posts_per_page' => 4,
  'category_name' => 'xyz',
  'meta_key' => 'views',
  'orderby' => 'meta_value_num',
  'order' => 'DESC',
  'post_status' => 'publish'
); ?>
0
Tony_404

これを試してみてください。

$args=array(
 'posts_per_page'      => 15, 
 'post_type'     => 'post', 
 'key' => 'views',
 'orderby' => 'meta_value_num', 
 'order'    => 'ASC',
 'post_status' => 'publish'
);

query_posts($args); ?>
 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
0
user3631

プラグインのドキュメントから

最も閲覧された投稿を表示するには

<?php if
(function_exists('get_most_viewed')):
?>
<ul>
      <?php get_most_viewed(); ?>    
</ul> <?php endif; ?> 

最初に渡す値は、取得したいもの、 'post'、 'page'、または 'both'です。渡す2番目の値は、取得したい投稿の最大数です。

デフォルト:get_most_viewed( 'both'、10)。

0
anu