Web制作忘備録

WPランキング調整

トップ MEMORANDAM WORDPRESS

WPランキング調整

ランキングを作るには「WordPress Popular Posts」を使う。
プラグインを入れた後に、通常の場合はショートコードで表示させる。
その場合、フォーマットタグで出力されるので調整はできない。
range=”期間”で時期を調整。

//期間は”daily”, “weekly”, “monthly”, “all”,”last30days”,”last7days”が使用できることを確認
[wpp range=’last30days’ order_by=’views’ limit=’5′ stats_date=’1′ stats_date_format’=’Y年n月j日’]

独自のタグでランキング出力

独自のタグでランキング情報を出力するには、function.phpに出力タグを登録、テンプレート呼び出しの手順になる。

//function.phpに記載する 
//プラグインに登録されているwpp_custom_htmlの関数を使用

function my_wpp_custom_html( $mostpopular, $instance ){

    $output .= '<div class="mpw">';
    foreach( $mostpopular as $popular ){
        // リンクを取得

        // タイトル・アイキャッチ画像・ページビュー数を取得

        $output .= '<p><a href="' . get_the_permalink( $popular->id ) . '">'. get_the_post_thumbnail( $popular->id, 'thumbnail' ) .'</a></p>';
        $output .= '<p>'. $category .'</p>';
        $output .= '<p>'. wp_list_categories( $popular->id, 'post_tag' ) .'</p>';
        $output .=
            '<p>' . esc_html( $popular->title ) . '</p>'.
            '<p>' . esc_html( $popular->pageviews ) . 'views</p>';
        // フィールド名「info-field」のカスタムフィールドの値を取得
        $custom_fields = get_post_meta( $popular->id, 'info-field', true );
        if($custom_fields) {
            $output .= '<div>' . esc_html( $custom_fields ) . '</div>';
        }

    }
    $output .= '</div>';
    return $output;
}
add_filter( 'wpp_custom_html', 'my_wpp_custom_html', 10, 2 );
//表示したい部分に記載
<?php
if ( function_exists( 'wpp_get_mostpopular' )) {
    $arg = array (
        // 記事を表示する最大件数
        'limit'     => 10,
        // 集計期間。 daily, weekly, monthly, all のいずれかを指定
        'range'     => 'all',
        // ソート順の対象。 views(閲覧数), comments(コメント数), avg(1日の平均)のいずれかを指定
        'order_by'  => 'views',
        // ポストタイプを指定。post, page, などを指定
        'post_type' => 'post',
    );
    wpp_get_mostpopular( $arg );
}
?>