サポート » テーマ » サブループ内での記事へのリンクにクラス名を付けたい

  • 個別投稿記事のページ(single.php)内に、表示中の記事と同じカテゴリーの記事リスト(リンク)を表示させています。
    リストには、表示中の記事へのリンクも含んでいますが、この部分だけクラス名を「current」などと追加することは可能でしょうか。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • モデレーター jim912

    (@jim912)

    メインループ内で個別記事のIDを $current_post_id などに代入しておき、サブループ内でIDの照合を行えば、十分可能かと思われます。

    こんにちは

    クラスを追加しなくても、CSSの属性セレクタを使うと 個別投稿記事のなかの、表示中の記事へのリンクにスタイルを指定する事は可能です。

    function current_post_hilight() {
    	global $post, $wp_styles;
    
    	if ( is_singular() ) {
    		$current_url = get_permalink( $post->ID );
    
    		$inline_style = 'a[href="' . $current_url . '"]{color:red!important;}';
    
    		wp_add_inline_style( 'style', $inline_style );
    	}
    }
    add_action( 'wp_print_styles', 'current_post_hilight' );

    サイドバーに、最近の投稿ウィジェットを置いて、個別投稿記事で、サイドバーのリンク色を変更できるか確認してみましたが OKでした。

    テストなので、実用にする場合は、!importantは外して、適切なセレクタに置き換えてください。

    ‘wp_add_inline_style( ‘style’,`のハンドル名 styleはテーマによって異なるかもしれないので、チェックしてください

    <link rel='stylesheet' id='style-css'  href='http://example.com/wp/wp-content/themes/raindrops/style.css?ver=1.412' type='text/css' media='all' />

    idの値から -cssを除いたものがハンドル名です。

    トピック投稿者 Hiroyuki.I

    (@hiroyukii)

    jim912様

    ありがとうございます。
    ご指摘の通り、メインループで個別記事の情報を入手し、サブループで照合をする、という流れで検証していたのですが、どうもうまくいかなかったので投稿させていただきました。

    もう少し自力でできるか確認してみてから、それでもできなかった場合は、こちらで具体的な内容を載せて、また質問させていただきます。

    トピック投稿者 Hiroyuki.I

    (@hiroyukii)

    nobita様

    ありがとうございます。
    ご指示いただいた「function…」をfunction.phpにコピペして確認したのですが、こちらの理解不足もあり、うまく動作しませんでした。

    また、私の質問文がわかりにくかったのかもしれませんので、改めてこちらが希望する内容を記述します。

    single.phpにて、メインループで個別記事Aを表示しています。
    また、同ページ内のサイドバーには、個別記事Aと同じカテゴリーの記事(B〜)へのリンクも載せています。
    リンクの表示では、Aを省いたリンクを載せるかもしれませんが、あえてAのリンクも残しているため、現在メインループで表示中の記事だと分かりやすいように、色を変えたいと思っています。
    具体的には、<li class=”current”>というクラス名が付けられればと希望しています。

    グローバルメニューでは自動的にcurrent-などと付くため、CSSで色を変えることができるので、サブループでのリストもそのようにできないか確認しているところでした。

    ご指摘いただいた「function…」をfunction.phpに追記するだけで、リストにクラス名が付くと思っていたのですが、違うようですね。理解不足で申し訳ありません。

    悩ませてしまったみたいですね。忘れてください :)

    jim912さんの回答に沿って進めていただくといいと思います。

    言いたかったことは、<li class="current">とクラスを設定しなくても、

    a[href="http://個別投稿記事のURL"]{
    プロパティ:値;
    }

    という形でスタイルを指定する事も出来るので、クラスを追加しないで、フックを使って処理しませんか?

    という事でした。

    なんで、直接の答えではなく、代替案を書いたかというと、質問ではサブループのお話でしたが、ワードプレスの例えば、月次アーカイブや、最近の投稿ウィジェット、タグクラウドウィジェットも、同じような問題を持っているため、「たぶん、そういうのも気になってくるんだろうなぁ」と思ったので、個別投稿とおんなじURLでリンクしている奴も、まとめて処理できる方法を提案してみた というわけでした。

    お騒がせしました。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「サブループ内での記事へのリンクにクラス名を付けたい」には新たに返信することはできません。