WordPress Popular Postsのカスタマイズ方法まとめ

人気記事の出力で使うWordPressプラグイン『WordPress Popular Posts』。

色々なカスタマイズ方法がありますので、まとめておきます。

一覧ページでの通常の出力

archive.phpfront-page.php

<?php if ( function_exists( 'wpp_get_mostpopular' ) ) : ?>
      <?php 
      $args = array( 
        'limit' => 12,
        'range' => 'monthly',
        'order_by' => 'views',
        'post_type' => 'article',
        'thumbnail_width' => 360,
        'thumbnail_height' => 200,
        'stats_category' => '1',
        'cat' => $cat_id,
        'wpp_start' => ' <div class="article autoplay">',
        'wpp_end' => '</div>',
        'stats_date' => 1,
        'stats_date_format' => 'Y.m.d',
        'stats_views' => 1,
        'post_html' => '<div class="article_li">
        <a href="{url}">
        <span class="article_li_imgbox"><div class="imgbox"><img class="object-fit-img" src="images/kiji01_01.jpg" alt=""></div></span>
        <span class="article_li_date">{date}</span><span class="article_li_icon">イタリアン</span>
        <h2 class="article_li_title">{text_title}</h2>
        <span class="store_name">トラットリア・バール・ジョルノ</span>
        </a>
        <div class="hashtag_box">
        <li class="hashtag"><a href="">四ツ橋駅</a></li>
        <li class="hashtag"><a href="">イタリアン</a></li>
        <li class="hashtag"><a href="">〜15000円</a></li>
        <li class="hashtag"><a href="">オシャレなお店</a></li>
        </div>
        </div>' ); 
      ?>
      <?php wpp_get_mostpopular( $args ); ?>
      <?php endif; ?>

$argsの中のパラメーターは、設定>WordPress Popular Posts>パラメーターに色々載っているので、そちらを参考に。

カスタムフィールドやカスタムタクソノミー・タームを出力したい時

functions.php

function my_custom_single_popular_post( $post_html, $p, $instance ){
$attachment_id =  get_field('field_name',$p->id);//カスタムフィールド画像取得
$custom_img = $attachment_id['sizes']['画像名'];//カスタムフィールド画像出力
$custom_name = get_post_meta($p->id, 'field_name', true);//カスタムフィールド
$taxonomy_station = get_the_term_list( $p->id, 'taxonomy_name1', '', '', '');//ターム
$taxonomy_genre = get_the_term_list( $p->id, 'taxonomy_name2', '', '', '');//ターム
$taxonomy_budget = get_the_term_list( $p->id, 'taxonomy_name3', '', '', '');//ターム
$taxonomy_mood = get_the_term_list( $p->id, 'taxonomy_name4', '', '', '');//ターム
$time = get_the_date( $format, $p->id );
$custom_id= $p->id;
//$excerpt = get_post_field( post_content, $p->id, display );
$output = '
<div class="article_li">
<a href="' . get_the_permalink($p->id) . '">
<span class="article_li_imgbox">
<div class="imgbox"><img class="object-fit-img" src="'. $custom_img .'" alt=""></div>
</span>
<span class="article_li_date">'. $time .'</span><span class="article_li_icon">イタリアン</span>
<h2 class="article_li_title">' . esc_attr($p->title) . '</h2>
<span class="store_name">'. $custom_name .'</span>
</a>
<div class="hashtag_box">
<li class="hashtag">'.$taxonomy_station.'</li>
<li class="hashtag">'.$taxonomy_genre.'</li>
<li class="hashtag">'.$taxonomy_budget.'</li>
<li class="hashtag">'.$taxonomy_mood.'</li>
</div>
</div>

';
return $output;
}
add_filter( 'wpp_post', 'my_custom_single_popular_post', 10, 3 );

変数名などは自由に変更してください。カスタムフィールド画像は『画像配列』を選択した場合。

archive.phpfront-page.php

<?php
    if (function_exists('wpp_get_mostpopular')){
      $arg = array (
        'range' => 'monthly',
        'order_by' => 'views',
        'stats_views' => '0',
        'post_type' => 'article',
        // 'taxonomy' => 'article_station',
        // 'term_id' => ' 28',
        'limit' => 12,
        'wpp_start' => '<div class="article autoplay">',
        'wpp_end' => '</div>', 
      );
      wpp_get_mostpopular($arg);
    }
    ?>

パラメーターは同じように使えますが、タクソノミー情報やカスタムフィールドも出力できます。

Recruit

私たちは共に働く仲間を求めています。Web制作・広告運用・SEO対策・マーケティング・Web解析・メディア運用・ライティング・Webサービス開発が主な業務です。

PartnerShip

Web制作会社・広告代理店・デザイン会社・コンサルティング会社様

パートナー提携はコチラから

Contact

平日 9:00 - 18:30

TEL 06-6125-5439

無料相談

お問合せ

お見積もり