Autor Zpráva
Erik Ponti
Profil
Dobrý den,

v krátké době bych rád položil už druhou, ale na dlouhou dobu poslední otázku.

V redakčním systému WordPress jsou jednotlivé komentáře děleny do odstavců (například 1 komentář rozdělen na 3 odstavce), ale na "frontendu" je každý komentář slitý dohromady, nerozdělený do odstavců. Mohli byste mi, prosím, poradit, jak upravit CSS, aby se odstavce zobrazovaly - dělily? Snad teď neudělám žádnou prasárnu, když sem vložím část CSS souboru, které se podlé mého laického názoru problém týká. Web je zde: kupnisila.cz Díky za čas, který trávíte nad mým neobratným příspěvkem.

/* COMMENTS */


.comments{
    clear: both;
    width: 100%;
    margin-top: 78px;
    border-top: 1px solid #e5e5e5;
    text-align: center;    
    display: inline-block;
}

.comments-title{
    font-size: 16px;
    text-transform: uppercase;
    color: #333;
    letter-spacing: 1px;
    font-weight: 700;
    background-color: #fff;
    top: -16px;
    position: relative;
    display: inline-block;
    text-align: center;
    width: auto;
    padding-left: 15px;
    padding-right: 15px;
    margin-bottom: 50px;
    
}

.comments-title span{
    color: #999;
    font-weight: 400;
}

.commentlist{
    text-align: left;
    font-size: 15px;
    line-height: 24px;    
}

.content .comment-author{
    color: #999;
    font-weight: 400;    
    margin-bottom: 16px;
}

.content .comments .comment:last-of-type{
    margin-bottom: 0px;
}

.comment-author b{
    font-weight: 700;
    color: #333;    
}

.comment-reply-link,
#cancel-comment-reply-link{
    float: right;
    position: relative;
    text-transform: uppercase;
    font-size: 12px;
    
    border-radius: 2px;
    background-color: #efefef;
    padding-left: 15px;
    padding-right: 15px;
}

#cancel-comment-reply-link{
    margin-left: -60px;
    position: absolute;    
    max-width: 100px;
    white-space: nowrap;    
    left: 50%;
    width: 100px;
    top: 29px;
}

.commentlist > li{
    padding-bottom: 30px;    
    margin-bottom: 30px;    
    border-bottom: 1px solid #e5e5e5;
}

.commentlist .comment{
    overflow: hidden;
}


.comments .avatar{
    border-radius: 50%;
    border: 1px solid #e5e5e5;
    padding: 3px;
    background-color: #fff;
    float: left; 
    margin-right: 20px;
}

.commentlist .holder{
    display: inline-block;
    width: 80%;    
    
}

.commentlist .children{    
    padding-left: 5%;
}


.commentlist li:last-of-type{
    border-bottom: 0px;
}

.commentlist li{
    margin-top: 30px;
}

#reply-title{
    font-size: 16px;
    text-transform: uppercase;
    color: #333;
    letter-spacing: 1px;
    font-weight: 700;
    background-color: #fff;
    top: -16px;
    position: relative;
    display: inline-block;
    text-align: center;
    width: auto;
    padding-left: 15px;
    padding-right: 15px;
    margin-bottom: 50px;
    
}


.comment-respond{
    clear: both;
    margin-top: 70px;
    border-top: 1px solid #e5e5e5;
    text-align: center;    
}


.comment-respond .comment-form-author,
.comment-respond .comment-form-email{    
    clear: both;
    display: inline-block;
    float: left;
    width: 60%;
}


.comment-respond label{
    font-size: 14px;
    float: left;
    min-width: 80px;
    text-align: left;
    padding-right: 20px;
}

.comment-respond .submit{
    margin-top: 22px;
    float: left;
}



#comment-nav-below{
    width: 100%;
    clear: both;
    float: left;
    margin-top: 15px;
}

#comment-nav-below a{
    color: #777;
    display: inline;
    height: 30px;
    white-space: nowrap;
    width: auto;
    font-size: 13px;    
}


#comment-nav-below .nav-previous a:after{
    content: " →";
}

#comment-nav-below .nav-previous a{
    text-align: right;
    float: right;
}

#comment-nav-below .nav-next a:before{
    content: "← ";
}

#comment-nav-below .nav-next a{
    text-align: left;
    float: left;    
}
Keeehi
Profil
Erik Ponti:
Problém je, že v kódu stránky ty odstavce vůbec nejsou. Resp. celý příspěvek je jako jeden odstavec, a tam kde bych čekal, že by odstavec tak asi mohl být, tag <p> chybí. Problém tedy není s css, ale se samotným redakčním systémem. Někde se ty odstavce po cestě ztrácejí. Je tedy potřeba zjistit, co může za jejich odstranění. Začal bych tím, zda se odstraňují při ukládání komentáře (v databázi bude komentář už bez <p> tagů), nebo až při jejich zobrazování (v databázi jsou u komentářů stále tagy <p> viditelné).
Erik Ponti
Profil
Keeehi:
Díky za postrčení! Až teď si všímám tohohle: V editoru redakčního systému se odstavce zobrazují, ale v kódu tam chybějí tagy <p>. Zapátral jsem ( elegantmarketplace.com/help-my-paragraphs-and-line-breaks-keep-disappearing-from-the-divi-text-module ) a v nastavení tamního WYSIWIG editoru "TinyMCE Advanced" jsem zaškrtl možnost "Stop removing the <p> and <br /> tags when saving and show them in the Text editor" - což bych považoval za samozřejmost a nevím, proč tam doposud příslušné tagy byly odstraňovány.

Nyní se tagy <p> v kódu komentářů zobrazují, ale teprve potom, co daný komentář znovu uložím (!). Takže nyní musím vyřešit, jak toho dosáhnout v bezmála 5 000 schválených komentářů. Většinou jsou komentáře tak krátké, že jsou jenom jedním odstavcem, ale cca v třetině případů (tedy cca 1 600) bych potřeboval provést hromadné "re-saving", abych nemusel každý delší komentář otevírat a znovu ukládat ručně. No, to teda ještě bude oříšek...
Kcko
Profil
Erik Ponti:
Tak si napíšeš "servisu" tj obslužný skript, který Ti vytáhne z DB příslušné komentáře a upraví tak jak si přeješ a přeuloží.
Erik Ponti
Profil
Kcko:
Díky to zní jako dobrá výzva - napsat první skript v životě :-).
Ještě zkoumám jakousi "funkci", která prý ve WordPressu umožňuje automaticky zobrazovat mezeru mezi řádky jako dělítko mezi odstavci. Asi bude potřeba někam umístit něco jako tohle:

<?php echo wpautop($comment->comment_content); ?>

www.youtube.com/watch?v=XcLk0_zJWos
www.tutorial9.net/tutorials/automatically-add-p-tags-to-content-in-wordpress
codex.wordpress.org/Function_Reference/wpautop

No, člověk se furt učí :-).
Kcko
Profil
Erik Ponti:
Nic na tom není.

Výpis z DB, úprava obsahu, update.

WP neznám, ale řešil bych to takhle.
Erik Ponti
Profil
Kcko:
Díky za info. Kolik byste si za takovou věc účtoval, kdybyste ji pro "někoho" na zakázku dělal? :-)
Kcko
Profil
Erik Ponti:

Tak 1-2h práce * hodinová sazba, která se u každého programátora liší.
juriad
Profil
Ono by to možná šlo provést jediným dotazem do databáze:
UPDATE comments SET comment = REPLACE(comment, '\n\n', '<p>');

Samozřejmě si napřed vyzkoušej někde jinde, zda to dělá co má (aby sis nepoškodil data, která už v databázi máš).
Erik Ponti
Profil
Tak jsem to nakonec "fixnul" pluginem wpDiscuz :-). wordpress.org/plugins/wpdiscuz Díky všem za rady.
Kcko
Profil
Erik Ponti:
A až nenajdeš plugin i když ve WP je snad i plugin na podrbání se na zádeli, tak si to stejně jednou napíšeš ;-)
A bylo by to rychlejší než hledání v tunách pluginů.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: