サポート » プラグイン » 「WordPress Popular Posts」投稿タイプ別の class を付けたい。

  • 解決済 nekocat

    (@nekocat)


    お世話になります。

    プラグイン 「wordpress popular posts」 を使用しています。
    サイトでは複数の投稿タイプを使用しており、
    すべての投稿タイプをまたいだ順位を表示させる仕様にしています。

    本題ですが、
    順位を表示させる際に、投稿タイプ別にCSSの設定を変えたいので、
    投稿タイプのスラッグを class で出力したいと考えています。

    出力する際のHTMLは、カスタムHTMLマークアップを使用し、以下のように記述しました。

    <li <?php post_class(); ?>>{title} <span class=”wpp-meta post-stats”>{stats}</span></li>

    冒頭の <li <?php post_class(); ?>> で、class を出力させようとしているのですが、
    どの <li> にも、ひとつのカスタム投稿タイプのスラッグしか class につきません。

    投稿タイプ別の class をつけるには、どのようにすればいいのでしょうか。
    ご存知の方、ご教示いただければ幸いです。

    • このトピックはOkamoto Hidetakaが5年、 9ヶ月前に変更しました。
    • このトピックはOkamoto Hidetakaが5年、 9ヶ月前に変更しました。
4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック投稿者 nekocat

    (@nekocat)

    すみません。
    文章が途中でおかしな切れ方をしてしまったので、
    再度投稿いたします。

    以下、文章の途中から ーーーーーー

    冒頭の <li <?php post_class(); ?>> で、class を出力させようとしているのですが、
    どの投稿タイプのものにも、ひとつの投稿タイプのスラッグしか class につきません。
    投稿タイプ別の class をつけるには、どのようにすればいいのでしょうか。
    ご存知の方、ご教示いただければ幸いです。

    こんにちは

    独自のタグ({post_type})を追加して、wpp_post フィルターフックで展開する方法ではどうでしょうか。

    HTML マークアップ設定の例:
    <li class="{post_type}">{thumb} {title} <span class="wpp-meta post-stats">{stats}</span></li>

    サンプルコード: functions.php に、

    function my_wpp_post( $output, $post_object ) {
    	$post_type = 'wpp-type-' . get_post_type( $post_object->id );
    	$output = str_replace( '{post_type}', $post_type, $output );
    	return $output;
    }
    add_filter( 'wpp_post', 'my_wpp_post', 10, 2 );

    サンプルコードでは、投稿タイプ名にプリフィックスに “wpp-type-” を付けたクラス名にしています。

    なお、このフォーラムでコードを貼り付ける場合はコードを選択し [code] ボタンをクリック(逆クォートで囲む)してください。
    詳細は下記ページをご覧ください。
    https://wpdocs.osdn.jp/フォーラムへようこそ#.E3.82.B3.E3.83.BC.E3.83.89.E3.81.AE.E6.8A.95.E7.A8.BF

    トピック投稿者 nekocat

    (@nekocat)

    ishitaka 様

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

    教えて下さったソースを使用したところ、
    無事に投稿タイプ別の class が出力されました。

    フィルターフックというテクニックがあるのですね。
    大変勉強になりました。

    [code]ボタンについても、ご指摘ありがとうございます。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「「WordPress Popular Posts」投稿タイプ別の class を付けたい。」には新たに返信することはできません。