サポート » 使い方全般 » プラグインなしでの人気記事の表示方法

  • こんにちは。
    現在、ブログを構築しており、その際に、プラグインなしで閲覧数の順で人気記事を
    表示させたいと思い、
    下記をfunctions.phpに

    //アクセス数の取得
    function get_post_views( $postID ) {
    $count_key = ‘post_views_count’;
    $count = get_post_meta( $postID, $count_key, true );
    if ( $count == ” ) {
    delete_post_meta( $postID, $count_key );

    add_post_meta( $postID, $count_key, ‘0’ );

    return “0 views”;
    }

    return $count . ”;
    }

    //アクセス数の保存
    function set_post_views( $postID ) {
    $count_key = ‘post_views_count’;
    $count = get_post_meta( $postID, $count_key, true );
    if ( $count == ” ) {
    $count = 0;
    delete_post_meta( $postID, $count_key );
    add_post_meta( $postID, $count_key, ‘0’ );
    } else {
    $count ++;
    update_post_meta( $postID, $count_key, $count );
    }
    }

    single.phpに、

    <?php
    $args = array(
    ‘post_type’ => ‘column’, //投稿タイプ
    ‘numberposts’ => 4, //表示数
    ‘meta_key’ => ‘post_views_count’,
    ‘orderby’ => ‘meta_value_num’,
    ‘order’ => ‘DESC’,
    );
    $posts = get_posts( $args );
    if($posts) : ?>
    <?php foreach( $posts as $post ) : setup_postdata( $post ); ?>
    <div class=”sub”>

    ” class=”fix”>
    <div class=”thumb”><img src=”<?php echo catch_that_image(); ?>” alt=”<?php the_title(); ?>” /></div>
    <dl>
    <dt><?php echo get_the_title(); ?></dt>
    <dd><?php echo get_the_date(“Y/m/d”); ?> writer <?php the_field(‘writer’); ?></dd>
    </dl>

    </div>
    <?php endforeach; ?>
    <?php wp_reset_postdata(); ?>

    <?php else : ?>
    <?php endif; ?>

    のように記述しました。
    記事を最初に投稿した際は、記事の閲覧数が0のため、上記の部分が空欄になってしまいます。
    閲覧数が0の場合でも、投稿された記事を表示したいのですが、どうしたらよいでしょうか。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • suzuki_macboyさん

    <?php set_post_views( get_the_ID() );//アクセス数を取得 ?>
    をheder.phpなどに書き込んでみてはいかがでしょうか?

    ご参考に

    https://ja.forums.wordpress.org/topic/152825?replies=7

    トピック投稿者 suzuki_macboy

    (@suzuki_macboy)

    回答ありがとうございます。

    カスタム投稿のアーカイブページではうまく表示されたのですが、
    そのカスタム投稿のタクソノミーページ(記述はアーカイブページと同じ)では
    反映されませんでした。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「プラグインなしでの人気記事の表示方法」には新たに返信することはできません。