カテゴリごとに異なる広告を表示する

広告 A、B、C と、カテゴリ a、b、c が3つずつあります。カテゴリ a に広告 A、カテゴリ b に広告 B、カテゴリ c に広告 C を表示するにはどうすればよいでしょうか?広告プラグインの設定でこれを見つけられませんでした。何かアイデアはありますか?よろしくお願いいたします。

私が行ったのは、3 つの広告すべてを含むハウス広告を使用し、CSS で各カテゴリに適用できるようにして、他のカテゴリの広告を非表示にするというものです。

@pfaffman さん、ありがとうございます。あなたの解決策が理解できません。以下のどちらについてお話しされているのでしょうか?

  1. 異なるクラス名(.first-ad、.second-ad、.third-ad)を持つ 3 つの異なる広告を作成し、それら 3 つのカテゴリーすべてで表示するように設定する。
  2. カテゴリーの CSS スタイルをカスタマイズして(やり方がよくわかりませんが)、クラス名に応じて一部の広告を非表示にする(カテゴリー A で 2 つ目の広告を表示したくない場合、CSS スタイルに .second-ad {display: none} を追加する、など)。

はい、その通りです。デフォルトでは非表示にして、表示させたいカテゴリで上書き設定していたと思います。CSS のことは詳しくないので、もっと上手に説明できませんが、あなたの理解は私の意図に非常に近い、あるいはそれ以上だと思います。

ありがとうございます。後で試してみます。

参考

特定のカテゴリにカスタム CSS を追加する

この場合、JavaScript、またはお好みであれば jQuery を使用した方が「うまくいく」かもしれません。

例えば、トピック内のクラスにはカテゴリ名が以下のように表示されます:

<span class="category-name">UNIX for Beginners Questions</span>

したがって、トピックページ用のスクリプトでは、クラス “category-name” のテキストを選択し、カテゴリのテキストに基づいて選択した div 要素に広告タグを注入します。

これは、CSS のみで広告コードタグの div 要素を表示・非表示を切り替える方法よりも、私の見解では優れた手法です。

また、基本的な JavaScript や jQuery のスキルを持つ人にとっては実装も非常に簡単です。

カテゴリ span のクラスに基づいて span 要素の内部テキストを選択します。次に、その内部テキストをカテゴリリストと照合し、ページ上の選択した DOM 要素にカテゴリに応じて広告コードを挿入します。

基本的な JavaScript のスキルを持つ人なら誰でもこのコードを書くのは比較的簡単で、おそらくあなたがやりたいことを実現するための最良の方法でしょう。@Windsooon

ご提案ありがとうございます。とても参考になります @neounix。私はJavaScriptにある程度慣れています。しかし、CSSを使って広告を設定した後、JavaScriptコードをどこに記述すればよいのか分かりません。以下のいずれかを選ぶべきでしょうか?

  1. サーバーに配置する(Discourseのコードベースを変更する)
  2. 管理パネルのどこかに配置する
  3. 追加のプラグインまたはテーマコンポーネントを使用する

よろしくお願いいたします。

@Windsooon

テーマのフッター(または end body タグの上)にコードを追加するか、テーマコンポーネントに追加してテーマに適用することもできます。どちらを選ぶかはあなた次第です。

DOMセレクターは、広告を表示するページによって異なります。

実際には、コードの大部分はお好みのウェブサイトに保持し、JavaScriptを読み込むためのリンクだけをテーマまたはテーマコンポーネントに追加するのが一般的です。少なくとも、私は通常そうしています。

個人的には、テーマでのDOM選択にはjQueryの方が優れていると感じますが、それはプレーンなバニラJSのセレクターに比べてjQueryのセレクターに慣れているからかもしれません。

わかりました!ありがとうございます。

@Windsooon さん、ようこそ!

それはまさに JavaScript が設計された目的です。DOM を操作し、DOM 内に要素を挿入することも含まれます。素晴らしい方向に進んでいますね! :slight_smile:

楽しんでください!!!

「これを代わりにやってくれる人」で、有料の人はいますか?カテゴリが約9あるので、カテゴリごとの広告設定が必要です。

マークさん、こんにちは。

この件で何か進展はありましたか?正直に言うと、CSSとJavaの理解は非常に限られており、利用可能なカスタムテーマコンポーネントのおかげでなんとかやっています。

また、「AD機能」を使用してカテゴリにカスタムテキストを追加したいのですが、特定のカテゴリにのみ表示させる方法が見つかりません。

カテゴリに広告ではなくヘッダーとしてテキストを追加したい場合、Category Banners のテーマコンポーネントがお役に立つかもしれません。