WordPress Popular Postsの出力をがっつりカスタマイズする2015/1/20

これ、ちょっと難しそうだなあと思っていたのですが、先人がおられた。助かった。

WordPress Popular Postsの出力をフルカスタマイズするには。 | ダイダイデザイン

今回僕が取り組んだケースも、wpp_postをカスタマイズする形でいけました。ただちょっと違うところで引っ掛かって、コンテンツをテンプレートで条件分岐させてincludeして出し分けてるんですよね。こういう時は出力バッファというのを使うそうな。

function custom_single_popular_post( $content, $p, $instance ){
    $output = '';
     if(get_post_meta($p->id, 'priority', TRUE) == '1') {
        ob_start();
        $output .= '<article class="item-list itemA">';
        include(TEMPLATEPATH."/module_itemA.php");
        $output .= ob_get_contents();
        ob_clean();
        $output .= '</article>';
     } else {
        $output .= '<article class="item-list itemB">';
        ob_start();
        include(TEMPLATEPATH."/module_itemB.php");
        $output .= ob_get_contents();
        ob_clean();
        $output .= '</article>';
     }
     return $output;
}
add_filter( 'wpp_post', 'custom_single_popular_post', 10, 3 );

で、テンプレート側でget_the_permalink($p->id)とかget_the_title($p->id)とかやれば良いです。後はページ側で設定して読みこむだけ。

if (function_exists('wpp_get_mostpopular')) {
   $arg = array (
   'range' => 'monthly',
   'order_by' => 'views',
   'post_type' => 'custom_post_type',
   'limit' => 10,
   'wpp_start' => ' ',
   'wpp_end' => ' '
   );
   wpp_get_mostpopular($arg);
}

最初話聞いた時、アクセス数をカスタムフィールドに入れるタイプのプラグインに乗り換えないと難しいかなあと思ったんだけど、wpp_postというフックがあることがわかったので、プラグインの機能残したまま活用できました。大変助かりました。

ひとり仕事: フリーランスという働き方
(2012-10-5)
売り上げランキング: 14,705
100円
本格ビジネスサイトを作りながら学ぶ WordPressの教科書
プライム・ストラテジー株式会社
ソフトバンククリエイティブ
売り上げランキング: 5,208
WordPressプロフェッショナル養成読本 [Webサイト運用の現場で役立つ知識が満載! ] (Software Design plus)
高野直子 後藤賢司 染谷昌利 岡本雄樹 深海寛信 岡本 渉 松本悦宜
技術評論社
売り上げランキング: 24,886
いちばんやさしい WordPress の教本 人気講師が教える本格Webサイトの作り方
石川栄和 大串肇 星野邦敏
インプレスジャパン
売り上げランキング: 2,127

今、読まれている記事

    まだデータがありません。