Comments template

A kétirányú kommunikáció egy üzleti vagy egy személyes blognál is nagyon fontos. A hozzászólási lehetőséget minél egyszerűbbé, de lehetőleg átláthatóvá kell tennünk blog készítés során. Legtöbb esetben a sablonokban egy alap comments.php van. Az alap alatt azt értem, hogy nincs benne szerző kiemelés vagy mondjuk előnézet. Éppen ezért egy olyan comments.php fájl készítettem, mondhatni templatet, amelyet minden fejlesztés során hasznosítani tudok. Ezt most jó szívvel megosztom veletek, remélem hasznát veszitek.

<?php if (!empty($post->post_password) && $_COOKIE['wp-postpass_'.COOKIEHASH]!=$post->post_password) : ?>
<p id="comments-locked">A bejegyzés jelszóval védett a hozzászólások megtekintéséhez kérlek add meg a jelszót.</p>
<?php return; endif; ?>
<?php if (pings_open()) : ?>
<p id="respond"><span id="trackback-link">
<a href="<?php trackback_url() ?>" rel="trackback">Visszajelzés link</a>
</span></p>
<?php endif; ?>
<?php if ($comments) : ?>
<?php

    /* Szerző kiemelése, add meg a megfelelő adatokat */
    $author = array(
            "highlight" => "highlight",
            "email" => "EMAIL CÍMED",
            "name" => "NEVED"
    );

    $numPingBacks = 0;
    $numComments  = 0;

    foreach ($comments as $comment) {
        if (get_comment_type() != "comment") { $numPingBacks++; }
        else { $numComments++; }
    }

    /* Used to stripe comments */
    $thiscomment = 'odd';
?>
<?php if ($numPingBacks != 0) : ?>
<h2 class="comments-header"><?php _e($numPingBacks); ?> Trackback/Pingback</h2>
<ol id="trackbacks">
<?php foreach ($comments as $comment) : ?>
<?php if (get_comment_type()!="comment") : ?>
<li id="comment-<?php comment_ID() ?>" class="<?php _e($thiscomment); ?>">
<?php comment_type(__('Comment'), __('Trackback'), __('Pingback')); ?>:
<?php comment_author_link(); ?> | <?php comment_date(); ?>
</li>
<?php if('odd'==$thiscomment) { $thiscomment = 'even'; } else { $thiscomment = 'odd'; } ?>
<?php endif; endforeach; ?>
</ol>
<?php endif; ?>
<?php if ($numComments != 0) : ?>
<h2 class="comments-header"><?php _e($numComments); ?> Hozzászólások</h2>
<ol id="comments">
<?php foreach ($comments as $comment) : ?>
<?php if (get_comment_type()=="comment") : ?>
<li id="comment-<?php comment_ID(); ?>" class="<?php
$this_name = $comment->comment_author;
$this_email = $comment->comment_author_email;
if (strcasecmp($this_name, $author["name"])==0 && strcasecmp($this_email, $author["email"])==0)
_e($author["highlight"]);
else
_e($thiscomment);
?>">

<div class="comment-meta">
<?php /* If you want to use gravatars, they go somewhere around here */ ?>
	<span class="comment-author"><?php comment_author_link() ?></span>,
	<span class="comment-date"><?php comment_date() ?></span>:
</div>

<div class="comment-text">
<?php /* Gravatar beállítások */
/* Például:
<img src="<?php gravatar("R", 80, "Alapértelmezett Gravatar URL"); ?>" alt="" class="gravatar" width="80" height="80"> */ ?>
<?php comment_text(); ?>
</div>
	</li>
    <?php if('odd'==$thiscomment) { $thiscomment = 'even'; } else { $thiscomment = 'odd'; } ?>
    <?php endif; endforeach; ?>
</ol>
    <?php endif; ?>
	<?php else : ?>
<h2 class="comments-header">Nincs hozzászólás</h2>
	<p>Legyél te az első, szólj hozzá!</p>
<?php endif; ?>
<?php if (comments_open()) : ?>
<?php /* Hozzászólás előnézete
    <div id="live-preview">
    <h2 class="comments-header">Előnézet</h2>
    <?php live_preview(); ?>
    </div>
 */ ?>
<div id="comments-form">
<h2 id="comments-header">Szólj hozzá te is!</h2>
	<?php if (get_option('comment_registration') && !$user_ID ) : ?>
<p id="comments-blocked">Hozzászólás írásához  <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=
    <?php the_permalink(); ?>">be kell jelentkezned.</a></p>
    <?php else : ?>
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
    <?php if ($user_ID) : ?>
<p>Bejelentkezve <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php">
    <?php echo $user_identity; ?></a> néven.
<a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="Kijelentkezés">Kijelentkezés</a>
</p>
    <?php else : ?>
	<p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" />
	<label for="author">Név<?php if ($req) _e(' (required)'); ?></label></p>
	<p><input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" />
	<label for="email">E-mail (nem lesz publikus)<?php if ($req) _e(' (required)'); ?></label></p>
	<p><input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" />
	<label for="url">Weboldal</label></p>
    <?php endif; ?>
    <?php /* <p>XHTML: Engedélyett HTML tagek: <?php echo allowed_tags(); ?></p> */ ?>
	<p><textarea name="comment" id="comment" rows="5" cols="30"></textarea></p>
    <?php /* Ha képet szeretnél gombnak akkor az alábbi módon járj el: <input type="submit" name="submit" id="sub" value="Submit" /> */  ?>
	<p><button type="submit" name="submit" id="sub">Submit</button>
	<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>"></p>
    <?php do_action('comment_form', $post->ID); ?>
</form>
</div>
	<?php endif; ?>
	<?php else : // Hozzászólások lezáva ?>
<p id="comments-closed">Hozzászólások lezárva.</p>
	<?php endif; ?> 

Szerzőről
Fridrik Bélának hívnak internetes körökben Efrud becenéven vagyok ismert. 8 Éve foglalkozok honlapok fejlesztésével. Az efrud.hu szakmai tapasztalataim olvashatóak, illetve vállalkozásom fő profilját is képezi.

5 hozzászólás időpont: "Comments template"

  1. Kapóra jött az írásod, épp ezen szenvedek pár napja. Megoldható szerinted hogy két postnak vagy oldalnak két különböző comment templatet adjunk?

    Arról van szó, hogy van az oldalon egy vendégkönyv, itt sima hozzászólás írható. Viszont szükség lenne egy linkajánlóra, ahol mondjuk egy oldal nevét és linkjét kéne megadni.

    Odáig eljutottam hogy készítettem egy 2. templatet, és behívtam az oldal sablonjába (), de hogyan tudnám az itt megadott adatokat kiiratni hozzászólásként? Persze más formában mint a vendégkönyvnél.

  2. Easy. :) Azt úgy kellene megoldani, hogy az oldalnak létrehozol egy page templatet és abban a page template-ben más comments sablont hívsz be. Így annál az egy oldalnál más lesz a page template miatt a hozzászólás rész a többinél meg ugyebár normál.

  3. Mint írtam ezt már sikerült kiviteleznem, behívja az új sablont. Viszont mikor hozzászól vslaki, a hozzászólása ugyanúgy íródik ki mint az alap. Mivel ha jól tudom, a kiíratást a wp-includes-ban lévő fájl irányítja. Abból nem lehet kettő?

  4. Nagyon köszönöm a formot, tökéletesen működik.
    Külön öröm, hogy könnyen ki lehet belőle buherelálni a “weboldal mezőt”.
    Gratula az oldaladhoz, sok sikert kívánok.

  5. Hello!

    Először is hálás köszönet ezért a komment sablonért, nagyon jól jött!

    Lenne ugyanakkor egy kérdésem, illetve kettő…

    A fontosabb: hogyan lehet megoldani ezzel a sablonnal a hozzászólások oldalakra tördelését? Olyan helyen használnám, ahol előreláthatólag több száz hozzászólás is lesz, és nyilván nem volna jó mindet egyszerre mutatni. A wp admin beállításaiban van ilyen opció, de hatástalannak tűnik. Mi lehet a megoldás?

    A másik kérdés, hogy alkalmas-e ez a komment sablon a “válasz X-nek” funkcióra (egymásba ágyazott komentek). Ez végülis annyira nem fontos, csak gondoltam megkérdem, mert erről egyszerűen nem találok sehol sem leírást!

    Előre is köszönöm!

Szólj hozzá

XHTML: Engedélyezett tagek: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>