Support » Plugins » Ausgabe des aktuellen Tag-Namens per Text-Widget auf Tag-Seite

  • Gelöst tengri

    (@tengri)


    Hallo,
    ich habe mit Hilfe dieser Anpassung ein Text-Widget angelegt, das mir in der Sidebar einer Kategorie-Seite die aktuelle Kategorie ausgibt, in der ich mich befinde. (Im Theme ist eigentlich die Funktion entalten, dass die Kategorie über den Posts ausgegeben wird, ich hätte es aber gerne in der Seitenleiste).
    Dazu habe ich diesen Code in das Text-Widget eingetragen
    `<?php
    if (is_category()) {
    $cat = get_query_var(‚cat‘);
    $catinfo = get_category($cat);
    echo „<h2>Kategorie: {$catinfo->name}</h2>“;
    }
    ?>
    Das Ergebnis ist hier zu sehen.
    Ich hätte die gleiche Funktion gerne auch für Tags – also Ausgabe des aktuellen Tag-Namens auf einer Tag-Seite. Wie müsste da der Code lauten, den ich ins Text-Widget einfüge?

    • Dieses Thema wurde geändert vor 3 Jahre, 8 Monaten von tengri.
    • Dieses Thema wurde geändert vor 3 Jahre, 8 Monaten von tengri.
Ansicht von 12 Antworten - 1 bis 12 (von insgesamt 12)
  • Moderator espiat

    (@espiat)

    Das Ausführen von PHP Code in den Widgets halte ich generell für keine gute Idee.

    Zu deiner Frage. Wenn du es innerhalb des Loops benutzt, dann ohne ID:

    https://codex.wordpress.org/Function_Reference/get_the_tags#Usage

    Ansonsten musst du vorher die ID des Posts holen.

    
    global $post;
    $meineid =  $post->ID;
     get_the_tags($meineid);
    
    ....
    
    

    @tengri

    Da hast du hübsch programmiert. Es geht aber einfacher.

    Für Kategorie-Seiten nimmst du (anstelle deines Codes)
    <?php single_cat_title( 'Kategorie: ' ); ?>

    und für Schlagwort-Seiten
    <?php single_tag_title( 'Schlagwort: ' ); ?>

    Hallo und danke, bitte nicht auslachen, ich hab von Coding keine Ahnung, hab mir das zusammengestoppelt und es hat funktioniert – ist doch schon mal was.
    Deshalb sagt mir die erste Antwort auch gar nichts.
    Wenn ich die zweite Variante probiere, kann ich aber nicht beides in ein Widget reinschreiben, dann wird nämlich immer Kategorie und Tag ausgegeben.
    Ich hatte es jetzt so

    <?php
    if (is_category()) {
    $cat = get_query_var(‚cat‘);
    $catinfo = get_category($cat);
    echo „<h2>Kategorie: {$catinfo->name}</h2>“;
    }
    ?>
    
    <?php
    if (is_tag()) {
    $tag= get_query_var(‚tag‘);
    $taginfo= get_category($tag);
    echo „<h2>Schlagwort: {$taginfo->name}</h2>“;
    }
    ?>

    Ich hab da grobschlächtog alles, was nach Kategorie aussah, durch „tag“ ersetzt – wahrscheinlich mörderisch für Profis. Aber ich dachte, ich probier’s mal.
    Also könnte man den zweiten Teil analog zum ersten nur eben für Tags ummodeln?
    Danke nochmals.

    • Diese Antwort wurde geändert vor 3 Jahre, 8 Monaten von tengri.
    • Diese Antwort wurde geändert vor 3 Jahre, 8 Monaten von Bego Mario Garde. Grund: Code-Auszeichnung korrigiert

    Was gefiel dir denn an meinem Vorschlag nicht? 🙂

    Wenn es nur darum geht, dass du bei Kategorien und Schlagworten den selben PHP-Code verwenden möchtest:

    <?php
    if ( is_category() ) {
      single_cat_title( 'Kategorie: ' );
    }
    if ( is_tag() {
      single_tag_title( 'Schlagwort: ' );
    }
    ?>

    … wobei du dann immer noch ein Plugin nutzen musst, damit das Widget nur auf den Archivseiten für Kategorien und Schlagworte angezeigt wird.

    … bitte nicht auslachen, ich hab von Coding keine Ahnung, hab mir das zusammengestoppelt und es hat funktioniert

    Das ist mir immer lieber als die vielen Teilnehmer hier, die nach einen Blöden suchen, der ihnen kostenlos eine fertige Lösung liefert. Der Code ist ja vom Ansatz auch schon vielversprechend, nur solltest du Funktionen, die WordPress dir zur Verfügung stellt, auch nutzen und nicht selber programmieren. Ich werfe (auch heute noch) regelmäßig einen Blick auf die Funktionsübersicht und suche da nach fertigen Lösungen.

    Moderator espiat

    (@espiat)

    PS: Mein Code bezog sich darauf, dass man auf eine Artikel seite im widget die Tags ausgibt.

    Danke für dein Verständnis und deine Hilfe, wirklich! 😉
    Um selbst ordentliche Lösungen zu suche, fehlt es am Grundlegenden.
    1. Bei deinem ersten, ursprünglichen Code bekomme ich einfach hintereinnder geschrieben angezeit „Kategorie: yxzSchlagwort:abc“. Genau so, ohne Leerzeichen, hintereinander weg.
    2. Bei deiner zweiten, letzten Variante bekomme ich das angezeigt
    3. Bei meiner Variante, bekam ich entweder die Kategorie richtig angezeigt, oder eben das Wort Tag, nur dass der Tag nicht ausgefüllt wurde.
    Kann man das überhaupt in einem Widget machen? Dass es auswählt, dies ist eine Kategorie-Übersichts-Seite, also zeig ich nur die Kategorie, dies ist eine Tag-bersichts-Seite, also zeig ich den Tag?
    Ich wurschtel mich seit einem Jahr durch und bin selbst erstaunt, was draus geworden ist.
    Also ich hab das Plugin Sidebar Manager, wo ich bestimmte Sidebars bestücken und die da hinsetzen kann, wo ich sie brauche.
    In mein Kategorien-, Tag-Default-Layout für die Übersichtsseiten (das gibt mein Theme her), hab ich so eine Sidebar eingebaut mit dem Widget.
    Nochmals danke.

    Oh, sorry! Da ist mir eine Klammer durchgegangen.
    Probier’s mal hiermit:

    <?php
    if ( is_category() ) {
      single_cat_title( 'Kategorie: ' );
    }
    if ( is_tag() ) {
      single_tag_title( 'Schlagwort: ' );
    }
    ?>

    Ach super, ja, jetzt ist das genau das Ergebnis, das ich wollte – ach, toll, da freu ich mich, vielen, vielen Dank!
    Kann ich die Asuage mit H3 auch direkt noch im Widget stylen, wo müssten da <h3> und </h3> hin?
    (Ich hoffe, das Nachhaken ist nicht zu unverschämt – der Code sieht ja doch bissel anders aus, als das, was ich hier angeschleppt hatte ;))

    Wenn du den Widgettitel nur anzeigen möchtest, wenn du auf einer Kategorie- oder Schlagwortseite bist, kannst du den Titel in das if-Statement packen:

    <?php
    if ( is_category() ) {
    	echo '<h4 class="widgettitle">Inhalt</h4>';
    	single_cat_title( 'Kategorie: ' );
    }
    if ( is_tag() ) {
    	echo '<h4 class="widgettitle">Inhalt</h4>'
    	single_tag_title( 'Schlagwort: ' );
    }

    Hallo, und nochmals danke.
    Entschuldigung, nein, mit dem Widgettitel ist alles okay, der hat das richtige Styling
    Ich meinte die Ausgabe der Info selbst, also „Kategorie: xyz“. Das hätte ich gerne nur eine Nummer größer.

    Moderator espiat

    (@espiat)

    Hi.

    Das wäre dann zB um die Ausgabe selbst zu ändern bei Kategorie:

    echo '<h3>';
    single_cat_title( 'Kategorie: ' );
    echo '</h3>';

    oder

    $mykategorie = single_cat_title( 'Kategorie: ',false );
    echo '<h3>'.$mykategorie.'</h3>';

    espiat, vielen Dank, nehme die erst Variante – und hab es jetzt für beide, Kategorien und Tags, hinbekommen.
    Vielen, vielen Dank euch beiden für die persönliche Betreuung 😉

    <?php
    if ( is_category() ) {
    echo '<h4>';
    single_cat_title( 'aus Kategorie: ' );
    echo '</h4>';
    }
    if ( is_tag() ) {
    echo '<h4>';
    single_tag_title( 'zum Thema: ' );
    echo '</h4>';
    }
    
    • Diese Antwort wurde geändert vor 3 Jahre, 8 Monaten von tengri.
    • Diese Antwort wurde geändert vor 3 Jahre, 8 Monaten von tengri.
    • Diese Antwort wurde geändert vor 3 Jahre, 8 Monaten von tengri.
    • Diese Antwort wurde geändert vor 3 Jahre, 8 Monaten von tengri.
Ansicht von 12 Antworten - 1 bis 12 (von insgesamt 12)
  • Das Thema „Ausgabe des aktuellen Tag-Namens per Text-Widget auf Tag-Seite“ ist für neue Antworten geschlossen.