Wordpress comments

De la EuroDomenii - Domenii .Eu .Ro Registrator Acreditat

Salt la: navigare, căutare

Codul pentru comments.php

  • Dupa cum am promis, am sa scriu si partea a treia despre cum sa construiesti un template pentru wordpress, mai precis codarea PHP a unei teme xHTML/CSS pentru Wordpress. In articolul trecut am scris despre index.php . Astazi vom discuta despre comments.php . Ce este acest fisier? Comments.php contine lista comentariilor si formularul ce permite scrierea comentariilor. Acest fisier este putin mai complicat. Nu stiu daca ar trebui sa va explic cam ce face fiecare functie php din el, deoarece nu cred ca este nevoie. De obicei se foloseste acelasi cod, doar ceea ce vedeti voi este diferit, datorita CSS-ului. Dupa cum puteti vedea si formularul meu de comentarii este putin mai diferit de cele obisnuite, dar foloseste codul NATIV al EE, cu modificari facute doar in CSS si Javascript. Deaceea nu cred ca este sa va explic prea multe la comments.php. Va voi spune pe scurt si doar ceea ce merita zis.

Codul pentru comments.php

<?php if ( !empty($post->post_password) && $_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) : ?>

<p>
<?php _e('Introduceti parola.'); ?>
</p>
<?php return; endif; ?>
<h2 id="comments" class="h2comment">
<?php comments_number(__('Fara comentarii'), __('1 Comentariu'), __('% Comentarii')); ?>
</h2>
<?php if ( comments_open() ) : ?>
<a class="makecomment" href="#postcomment" title="<?php _e("Leave a comment"); ?>">Spune-ti parerea</a>
<?php endif; ?>
<div class="clear"></div>
<?php if ( $comments ) : ?>
<ul class="commentlist">
<?php foreach ($comments as $comment) : ?>
<li class="<?php echo $oddcomment; ?>" id="comment-<?php comment_ID() ?>">
<?php


/* Verificam daca este disponibil pluginul gravatar */
if (function_exists('gravatar')) {
if ('' != get_comment_author_url()) {
echo "<a href='$comment->comment_author_url' title='Visit $comment->comment_author'>";
} else {
echo "<a href='http://www.gravatar.com' title='Creaza avatarul tau online!'>";
}
echo "<img src='";
if (
'' == $comment->comment_type) {
echo gravatar($comment->comment_author_email);
} elseif ( ('trackback' == $comment->comment_type) || ('pingback' == $comment->comment_type) ) {
echo gravatar($comment->comment_author_url);
}
echo "' alt='a gravatar' class='gravatar' /></a>";
}
?>
<cite>
<?php comment_author_link() ?>
</cite> a spus:
<?php if ($comment->comment_approved == '0') : ?>
<em>Comentariul trebuie verificat de catre un administrator.</em>
<?php endif; ?>
<br />
<
small class="commentmetadata"><a href="#comment-<?php comment_ID() ?>" title="">
<?php

comment_date
('F jS, Y') ?>
at
<?php comment_time
() ?>
</a>
<?php edit_comment_link(' - edit','',''); ?>
</small>
<?php comment_text() ?>
</li>
<?php /* Folosim acest cod pentru a folosi clase CSS multiple */
if ('alt' == $oddcomment) $oddcomment = '';
else
$oddcomment = 'alt';
?>
<?php
endforeach; /* sfarsit pentru fiecare comentariu */ ?>
</ul>
<?php else : // Daca nu este niciun comentariu ?>
<p>
<?php _e('Nicun comentariu.'); ?>
</p>
<?php endif; ?>
<p>
<?php comments_rss_link(__('Feed RSS pentru Comentarii')); ?>
&nbsp;&nbsp;
<?php if ( pings_open() ) : ?>
<a href="<?php trackback_url() ?>" rel="trackback">
<?php _e('URL TrackBack'); ?>
</a>
<?php endif; ?>
</p>
<?php if ( comments_open() ) : ?>
<h2 id="postcomment">
<?php _e('Lasa un comentariu'); ?>
</h2>
<?php if ( get_option('comment_registration') && !$user_ID ) : ?>
<p>Trebuie sa fiti<a href="../Copy of red/<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>"> logat</a>pentru a lasa un comentariu.</p>
<?php
if (function_exists(show_authimage))
{
?>
<input type="text" name="code" id="code" value="" size="22" />
<?php
echo show_authimage();
}
?>
</p>
<?php else : ?>
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
<?php if ( $user_ID ) : ?>
<p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Logout') ?>">Logout &raquo;</a></p>
<?php
if (function_exists(show_authimage))
{
?>
<input type="text" name="code" id="code" value="" size="22" />
<?php
echo show_authimage();
}
?>
<?php
else : ?>
<p>
<
input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="40" tabindex="1" />
<
label for="author"><small>Nume
<?php
if ($req) _e('(obligatoriu)'); ?>
</small></label>
</
p>
<
p>
<
input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="40" tabindex="2" />
<
label for="email"><small>Mail (nu va fi publicat)
<?php if ($req) _e('(obligatoriu)'); ?>
</small></label>
</
p>
<
p>
<
input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="40" tabindex="3" />
<
label for="url"><small>Site</small></label>
</
p>
<
p>
<?php
if (function_exists(show_authimage))
{
?>
<input type="text" name="code" id="code" value="" tabindex="4" size="40" style="float:left" />
<?php
echo show_authimage();
}
?>
</p>
<?php endif; ?>
<p>
<
textarea name="comment" id="comment" rows="10" tabindex="5" cols="10"></textarea>
</
p>
<
p>
<
input type="checkbox" name="subscribe" tabindex="6" id="subscribe" value="subscribe" />
<
label for="subscribe">Subscriete comentariilor</label>
</
p>
<
p>
<
input name="submit" type="submit" id="submit" tabindex="7" value="Submit Comment" />
<
input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
</
p>
<?php do_action('comment_form', $post->ID); ?>
</form>
<?php endif; // Daca este necesara logarea ?>
<?php else : // Comentariile sunt inchise ?>
<p>
<?php _e('Acest articol nu accepta comentarii.'); ?>
</p>
<?php endif; ?>

Acesta este codul standard pentru comments.php .



Count comments - PIMP Wordpress (PHP, CSS)

  • Acum recent cineva ma tragea de urechi pentru ca nu este afisat numarul comentarilor. Bun, m-am pus pe treaba (mai mult imi ia sa scriu postul asta decat sa aplic un count la comentarii) si m-am jucat putin cu comments.php situat in /wp-content/themes/tema-ta/.
    In fisierul comments.php este un ciclu (foreach) care extrage si afiseaza comentarile de la fiecare post. Inaintea ciclului adaugam o variabila cu valoarea 1, in ciclu introducem valoarea count a comentariului de la postul respectiv si inainte de terminarea ciclului (endforeach) adaugam iar variabila cu rol de auto incrementare la fiecare ciclu. Imaginea de mai jos este un demo la modificarea facuta in actiune si aici este "codul sursa". Nu am dat copy/paste la tot ciclul pentru ca unele chestii difera de la tema la tema (wordpress theme).
    Sursa
Unelte personale
Trusa de unelte