• User

    Modificare style commenti in base al livello autore

    Cari amici Giorgiotaviani (o Giorgiotavesi?) 🙂 😉
    avrei bisogno di un vostro aiuto.
    Molti di voi sapranno che su Wordpress, dentro la cartella di quasi tutti i templates, esiste un file chiamato functions.php dentro il quale vengono dichiarate, appunto, determinate funzioni per il tema in uso.

    Vengo al punto: il mio tema non differenzia lo style css fra i commenti inviati dall'amministratore e quelli inviati da un utente guest.
    Per tale ragione ho inserito, dentro il succitato file functions.php, la seguente funzione:

    [php]<?php
    function custom_comment($comment, $args, $depth) { $GLOBALS['comment'] = $comment;
    ?>

    <li class="<?php if ($comment->comment_author_email == "[email protected]") echo 'comment-author-admin'; else echo 'comment'; ?>">

    <div id="comment-<?php comment_ID( ); ?>">
    <table border="0" cellpadding="6"><tr><td width="52" valign="top" align="left">
    <div class="avatar_cont"><?php if ($args['avatar_size'] != 0) echo get_avatar( $comment, $args['avatar_size'] ); ?></div></td><td width="100%" valign="top" align="left"><div class="avatar_cont">
    Comment by <em><?php comment_author_link() ?></em>:
    <?php if ($comment->comment_approved == '0') : ?>
    <em>Your comment is awaiting moderation.</em>
    <?php endif; ?>
    <br />
    <small class="commentmetadata"><a href="#comment-<?php comment_ID() ?>" title="">
    <?php comment_date('l, F jS Y') ?> at <?php comment_time() ?></a><br /><?php edit_comment_link('Edit','',''); ?></small>
    </div></td></tr></table>
    <?php comment_text() ?>

    <?php echo comment_reply_link(array('before' => '<div class="reply">', 'after' => '</div>', 'reply_text' => 'Reply to this comment', 'depth' => $depth, 'max_depth' => $args['max_depth'] )); ?>
    </div>
    <?php } ?>[/php]Come potete notare, per come l'ho impostata io, assegna una classe css differente solo se l'email corrisponde a quella dell'amministratore.
    Il problema è che, ovviamente, se un guest inserisce nel campo relativo alla mail quella stessa dell'amministratore, anche il commento di quel guest apparirà con lo stesso aspetto dell'admin.

    Potete aiutarmi a modificare un pò questa funzione in modo tale da avere una classe differente se il commento è realmente in modalità "is_admin"?

    Spero di essermi spiegato bene :gthi::lol:
    Un salutino a tutti


  • User

    Ho risolto da solo:

    [PHP]<?php
    function custom_comment($comment, $args, $depth) { $GLOBALS['comment'] = $comment;
    ?>

    <?php
    $comment_class = (1 == $comment->user_id) ? 'comment-author-admin' : 'comment';
    ?>

    <li class="<?php echo $comment_class; ?>">

    <div id="comment-<?php comment_ID( ); ?>">
    <table border="0" cellpadding="6"><tr><td width="52" valign="top" align="left">
    <div class="avatar_cont"><?php if ($args['avatar_size'] != 0) echo get_avatar( $comment, $args['avatar_size'] ); ?></div></td><td width="100%" valign="top" align="left"><div class="avatar_cont">
    Comment by <em><?php comment_author_link() ?></em>:
    <?php if ($comment->comment_approved == '0') : ?>
    <em>Your comment is awaiting moderation.</em>
    <?php endif; ?>
    <br />
    <small class="commentmetadata"><a href="#comment-<?php comment_ID() ?>" title="">
    <?php comment_date('l, F jS Y') ?> at <?php comment_time() ?></a><br /><?php edit_comment_link('Edit','',''); ?></small>
    </div></td></tr></table>
    <?php comment_text() ?>

    <?php echo comment_reply_link(array('before' => '<div class="reply">', 'after' => '</div>', 'reply_text' => 'Reply to this comment', 'depth' => $depth, 'max_depth' => $args['max_depth'] )); ?>
    </div>
    <?php } ?>[/PHP]

    spero possa essere d'aiuto a qualcuno. 😉