Verschiedene Anzeigen in verschiedenen Kategorien anzeigen

Ich habe drei Anzeigen A, B, C und drei Kategorien namens a, b, c. Wie kann ich Anzeige A auf a, Anzeige B auf b und Anzeige C auf c anzeigen? Ich finde dies nicht in den Einstellungen des Anzeigen-Plugins. Haben Sie eine Idee? Vielen Dank.

1 „Gefällt mir“

Was ich getan habe, war, Hausanzeigen zu verwenden, die alle drei Anzeigen enthalten, mit CSS, das dann in jeder Kategorie angewendet werden kann, um die Anzeigen aus den anderen Kategorien auszublenden.

2 „Gefällt mir“

Danke @pfaffman. Ich verstehe deine Lösung nicht. Meinst du:

  1. Drei verschiedene Anzeigen mit unterschiedlichen Klassennamen (.first-ad, .second-ad, .third-ad) erstellen und sie für alle drei Kategorien sichtbar schalten.
  2. Das CSS-Design der Kategorien anpassen (ich bin mir nicht sicher, wie das geht), um bestimmte Anzeigen basierend auf ihrem Klassennamen auszublenden (Wenn ich die zweite Anzeige in Kategorie A nicht anzeigen möchte, würde ich .second-ad {display: none} zum CSS hinzufügen).

Ja, so ähnlich. Ich denke, ich habe es standardmäßig ausgeblendet und dann für die Kategorie, in der es angezeigt werden soll, überschrieben. Ich bin nicht gut genug in CSS, um es eleganter zu beschreiben, aber es scheint, dass dein Verständnis nun sehr nahe an meinem liegt. Oder sogar besser.

Danke. Ich werde es später versuchen.

Referenz

Benutzerdefiniertes CSS für bestimmte Kategorien hinzufügen

1 „Gefällt mir“

Es wäre wahrscheinlich besser, dies mit JavaScript oder vielleicht jQuery umzusetzen, falls Sie das bevorzugen.

Zum Beispiel zeigt die Klasse in einem Thema den Namen der Kategorie wie in diesem Beispiel an:

<span class="category-name">UNIX für Anfänger Fragen</span>

In einem Skript für die Themenseite würden Sie also den Text der Klasse „category-name

2 „Gefällt mir“

Vielen Dank für deinen Vorschlag, das ist sehr hilfreich @neounix. Ich habe zwar einige Erfahrungen mit JavaScript, aber nachdem ich die Werbung mit CSS eingerichtet habe, weiß ich nicht, wo ich meinen JavaScript-Code platzieren soll. Soll ich:

  1. Den Code auf meinem Server ändern (im Discourse-Codebase)?
  2. Den Code irgendwo im Admin-Bereich einfügen?
  3. Ein zusätzliches Plugin oder eine Theme-Komponente verwenden?

Vielen Dank!

@Windsooon

Du kannst deinen Code im Footer (oder vor dem schließenden body-Tag) in deinem Theme hinzufügen oder du kannst ihn in einer Theme-Komponente platzieren und diese dann auf deine Themes anwenden. Die Wahl liegt bei dir.

Die DOM-Selektoren unterscheiden sich je nach Seite, auf der du die Anzeigen anzeigst.

Eigentlich solltest du den Großteil des Codes auf deiner bevorzugten Website behalten und lediglich den Link zum Laden des JavaScripts in dein Theme oder deine Theme-Komponente einfügen – zumindest ist das meine übliche Vorgehensweise.

Persönlich finde ich, dass jQuery bei der DOM-Auswahl in Themes besser funktioniert, aber das liegt wahrscheinlich daran, dass ich mehr Erfahrung mit jQuery-Selektoren habe als mit reinen Vanilla-JS-Selektoren.

2 „Gefällt mir“

Ich habe es verstanden! Vielen Dank.

Willkommen @Windsooon

Das ist genau das, wofür JavaScript entwickelt wurde: das DOM zu manipulieren, einschließlich des Einfügens von Elementen ins DOM. Du bist also auf dem richtigen Weg! :slight_smile:

Viel Spaß!!!

1 „Gefällt mir“

Gibt es jemanden, der mir dafür einen Preis berechnet? Ich benötige Anzeigen pro Kategorie für etwa 9 Kategorien eingerichtet.

1 „Gefällt mir“

Hallo Mark,

Sind Sie damit weitergekommen? Ich muss ehrlich sein, mein Verständnis von CSS und Java ist sehr begrenzt und wir kommen hauptsächlich mit den benutzerdefinierten Themenkomponenten zurecht, die uns zur Verfügung stehen.

Wir möchten auch die „AD-Funktion“ verwenden, um einfach benutzerdefinierten Text zu unseren Kategorien hinzuzufügen, können aber keinen Weg finden, ihn nur in einer bestimmten Kategorie anzuzeigen.

Wenn Sie Text als Header zu Ihren Kategorien hinzufügen möchten, anstatt Anzeigen anzuzeigen, haben wir die Category Banners Theme-Komponente, die nützlich sein könnte.

1 „Gefällt mir“