Zvýraněte své komentáře jako admina webu

V rubrice: Tipy & Triky | Obtížnost:

Že právě vy jste administrátorem webu by má být v komentářích jasně vidět. Ano, pravidelní návštěvníci nemají nejmenší problém vás poznat, ale ti, kteří k vám jen zabloudili, by se měli jednoduše dozvědět, že jste něco víc.

Pokud to WordPressovská šablona nepodporuje, je přímo na vás, jaké konkrétní zvýraznění zvolíte. Jiné pozadí, rámeček pro obrázek … to už je vás.

Vzhledem k obrovské variabilitě šablon není možné poskytnout řešení, které by fungovalo univerzálně pro všechny. Ukážeme si ale dva nejčastější případy. V obou se musíte podívat do souboru šablony comments.php

1. Našli jste funkci wp_list_comments, která komentáře vypisuje podle svého. V tom případě položka s vaším komentářem získává třídu comment-author-admin a vám tedy stačí přidat styl do CSS

2. Tuto funkci jste tam nenašli a loop komentářů je rozepsaný. V tom případě vás čeká trochu těžší práce. Najděte si část, kde začíná element <li>. Tomu budete muset přiřadit třídu.

<li class="<?php if($comment->user_id == 1) echo "comment-author-admin"; ?>">

A dostáváme se na to samé místo jako v prvním případu. CSS styl pak může vypadat například takto:

.comment-author-admin {background: #CCC}
.comment-author-admin .children li {background: transparent}

Je už na vás, jaký zvolíte.

V rubrice: Tipy & Triky | Obtížnost:

Komentáře

  1. Uvedený postup nebude fungovat v několika případech:

    1) pokud má web více adminů
    2) pokud uživatel nepoužívá administrátorský účet vytvořený hned po instalaci WP

    Konkrétně u mně to nebude fungovat proto, že můj administrátorský účet (jediný) má jiné ID než 1.

    btw mít u uživatelského účtu výchozí ID (1) je potencionální bezpečnostní chyba 🙂

    1. Tak pokud tvoří web více lidí, tak tam by záleželo do jaké úrovně oprávnění se má komentář zobrazovat zvýrazněně.

      Např takto by to vypadalo pro všechny, kdo mohou upravovat články
      < ?php if($comment->user_id > 0){
      $user = get_userdata($comment->user_id);
      if($user->allcaps[‚edit_posts‘] == 1) echo „zvyraznit“;
      } ?>

      Ono největší potenciální bezpečností chyba je mít WordPress. Podobných zlepšení bezpečnosti je určitě velké množství, ale otázkou je, jak moc jsou účinné. Viděl jsem i pár pluginů, které na spoustu věcí dokáží upozornit.

  2. Ahoj. Asi budu za těžkého amatéra, ale nějak jsem to podle tvého stručného návodu nezvládl. Mohl by jsi prosím pomoct?
    Platí u mě první podmínka, našel jsem fci. ‚wp_list_comments‘
    konkrétně celý řádek vypadá takto: wp_list_comments(‚type=all&callback=theme_comment‘);

    Ale teď nevím, kam mám přidat ty2 řádky do CSS?
    Díky za pomoc

    1. Ahoj Jirko,

      návod počítá se základní znalostí úpravy šablon. Tak pro tebe jednodušeji. Styl přidáš tak půjdeš v menu do Vzhled -> Editor->Soubory šablony->style.css. A úplně na konec toho souboru vložíš zmiňované styly.

      Ovšem pozor, pokud si zvýraznění budeš chtít upravit k obrazu svému, tak se budeš musit naučit základy kaskádových stylů http://www.jakpsatweb.cz/css/.

      1. Děkuji za rychlou odpověď 😉
        Nějaké základy CSS mám, pár editací WP šablon už mám také za sebou, ale právě že prosté vložení onoho kódu do mého CSS souboru neprovede žádnou změnu. Je možné, že to bude šablonou?

        1. Úpravu jsi provedl správně, ale narazil jsi na něco, co jsem zapomněl zmínit v článku. Třída comment-author-admin platí jen v případě, že se přihlašuješ na uživatelské jméno admin. U tvého blogu by to pak bylo .comment-author-jiri-fila

          Případně můžeš použít ještě třídu bypostauthor. Pomocí ní zvýrazníš komentáře autora článku.

          1. Tak už se mi konečně zadařilo, chtělo to ještě pár úprav.
            Teď jsem v tom ale objevil ještě jeden problém.
            Pokud jako admin přidám komentář, tak je správně zvýrazněn. Když na něj někdo reaguje (children li) tak se také zobrazuje správně, ale pokud opět já jako admin odpovím, již se mi můj komentář zobrazí se standartním formátováním.
            Blbě se to vysvětluje, ale podle ukázky to bude asi jasné: http://blog.jifi.eu/vydelek/jak-vydelavat-na-placenych-clancich-a-neprijit-o-ctenare/#comment-520

          2. J, je mi to jasné. Mohl by to řešit následující styl:

            li.comment-author-jiri-fila>div {background: #DDD}

            s tím, že nahradí ty dva původní řádky.

          3. Teda já ti tady spamuju 🙂
            Tohle suprově vyřešilo předchozí problém, akorát že to >div mi překrylo nastavení, jak má vypadat div komentáře. Mám na mysli to orámování a stínování. Ale asi to tak nechám, i takhle se mi to docela líbí 🙂

  3. Zdravím a moc děkuji za návod „(li.comment-author-jiri-fila>div)“ jak vyřešit problém se zvýrazněním admina. Povedlo se mi ihned po nalezení tohoto návodu napravit chybku kterou jsem kdysi provedl ve stylech. Problém byl v tom, že pokud byl můj komentář jako admina hlouběji zanořen, tak se ztratilo zdůraznění. Nyní již vše funguje jak má, ještě jednou moc děkuji 😉

Comments are closed.