Heim >CMS-Tutorial >WordDrücken Sie >Der gesamte Prozess der WordPress-Theme-Erstellung (10): Kommentare erstellen.php

Der gesamte Prozess der WordPress-Theme-Erstellung (10): Kommentare erstellen.php

藏色散人
藏色散人nach vorne
2023-02-21 10:12:301866Durchsuche

Ich habe Ihnen „Der gesamte Prozess der WordPress-Theme-Produktion (9): Single.php erstellen“ vorgestellt. In diesem Artikel erfahren Sie weiterhin, wie Sie comments.php erstellen ~

Der gesamte Prozess der WordPress-Theme-Erstellung (10): Kommentare erstellen.php

Heute sind wir hier. Erstellen Sie ein Kommentarmodul für Kommentarthemen. Erstellen Sie eine neue comments.php im Themenverzeichnis Aurelius, schneiden Sie den folgenden Code in single.php aus und fügen Sie ihn in comments.php ein:

<!– Comment’s List –>
<h3>Comments</h3>
<div class="hr dotted clearfix"> </div>
<ol class="commentlist">
<li class="comment">
<div class="gravatar"> <img alt="" src=’images/gravatar.png’ height=’48′ width=’48′ /> <a class="comment-reply-link" href=">Reply</a> </div>
<div class="comment_content">
<div class="clearfix"> <cite class="author_name"><a href="">Joe Bloggs</a></cite>
<div class="comment-meta commentmetadata">January 6, 2010 at 6:26 am</div>
</div>
<div class="comment_text">
<p>Donec leo. Aliquam risus elit, luctus vel, interdum vitae, malesuada eget, elit. Nulla vitae ipsum. Donec ligula ante, bibendum sit amet, elementum quis, viverra eu, ante. Fusce tincidunt. Mauris pellentesque, arcu eget feugiat accumsan, ipsum mi molestie orci, ut pulvinar sapien lorem nec dui.</p>
</div>
</div>
</li>
</ol>
<div class="hr clearfix"> </div>
<!– Comment Form –>
<form id="comment_form" action="" method="post">
<h3>Add a comment</h3>
<div class="hr dotted clearfix"> </div>
<ul>
<li class="clearfix">
<label for="name">Your Name</label>
<input id="name" name="name" type="text" />
</li>
<li class="clearfix">
<label for="email">Your Email</label>
<input id="email" name="email" type="text" />
</li>
<li class="clearfix">
<label for="email">Your Website</label>
<input id="website" name="website" type="text" />
</li>
<li class="clearfix">
<label for="message">Comment</label>
<textarea id="message" name="message" rows="3" cols="40"></textarea>
</li>
<li class="clearfix">
<!– Add Comment Button –>
<a type="submit" class="button medium black right">Add comment</a> </li>
</ul>
</form>

Fügen Sie den Code am ursprünglichen Speicherort von single.php hinzu:

<?php comments_template(); ?>

Die Funktion von Die obige Anweisung besteht darin, comments.php hinzuzufügen. Das Importieren des gesamten Inhalts in single.php hat den gleichen Effekt wie das direkte Schreiben des Codes in comments.php in single.php.

Aus Sicherheitsgründen und um zu verhindern, dass böswillige Benutzer die Kommentardatei direkt öffnen, fügen Sie bitte den folgenden Code in den Comments.php-Header ein:

<?php
if (isset($_SERVER[&#39;SCRIPT_FILENAME&#39;]) && &#39;comments.php&#39; == basename($_SERVER[&#39;SCRIPT_FILENAME&#39;]))
die (&#39;Please do not load this page directly. Thanks!&#39;);
?>

Da sich der von der WordPress-Ausgabekommentarfunktion wp_list_comments() ausgegebene Kommentarcode vom Kommentar unterscheidet Code unseres Themas Ja, wir müssen unsere Kommentarliste anpassen und den folgenden Code in comments.php löschen (der folgende Code wird verwendet, um alle Kommentare zum Artikel aufzulisten):

<li class="comment">
<div class="gravatar"> <img alt="" src=’images/gravatar.png’ height=’48′ width=’48′ /> <a class="comment-reply-link" href=">Reply</a> </div>
<div class="comment_content">
<div class="clearfix"> <cite class="author_name"><a href="">Joe Bloggs</a></cite>
<div class="comment-meta commentmetadata">January 6, 2010 at 6:26 am</div>
</div>
<div class="comment_text">
<p>Donec leo. Aliquam risus elit, luctus vel, interdum vitae, malesuada eget, elit. Nulla vitae ipsum. Donec ligula ante, bibendum sit amet, elementum quis, viverra eu, ante. Fusce tincidunt. Mauris pellentesque, arcu eget feugiat accumsan, ipsum mi molestie orci, ut pulvinar sapien lorem nec dui.</p>
</div>
</div>
</li>

Ändern Sie ihn in:

<?php 
    if (!empty($post->post_password) && $_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { 
        // if there's a password
        // and it doesn't match the cookie
    ?>
    <li class="decmt-box">
        <p><a href="#addcomment">请输入密码再查看评论内容.</a></p>
    </li>
    <?php 
        } else if ( !comments_open() ) {
    ?>
    <li class="decmt-box">
        <p><a href="#addcomment">评论功能已经关闭!</a></p>
    </li>
    <?php 
        } else if ( !have_comments() ) { 
    ?>
    <li class="decmt-box">
        <p><a href="#addcomment">还没有任何评论,你来说两句吧</a></p>
    </li>
    <?php 
        } else {
            wp_list_comments(&#39;type=comment&callback=aurelius_comment&#39;);
        }
    ?>

Sie können auch Sehen Sie sich die allgemeine Bedeutung des obigen Codes an. Das Ergebnis lautet: Wenn ... dann ... Wenn keine der oben genannten Bedingungen erfüllt ist, werden alle Kommentare aufgelistet. Ändern Sie nun das ?> in der Datei „functions.php“ im Theme-Ordner Aurelius in den folgenden Code. Wenn die Datei „functions.php“, die Sie zuvor von diesem Blog heruntergeladen haben, bereits den folgenden Code enthält, ist es nicht erforderlich, ihn hinzuzufügen:

function aurelius_comment($comment, $args, $depth) 
{
   $GLOBALS['comment'] = $comment; ?>
   <li class="comment" id="li-comment-<?php comment_ID(); ?>">
<div class="gravatar"> <?php if (function_exists(&#39;get_avatar&#39;) && get_option(&#39;show_avatars&#39;)) { echo get_avatar($comment, 48); } ?>
 <?php comment_reply_link(array_merge( $args, array(&#39;reply_text&#39; => '回复','depth' => $depth, 'max_depth' => $args['max_depth']))) ?> </div>
<div class="comment_content" id="comment-<?php comment_ID(); ?>">
<div class="clearfix">
<?php printf(__('<cite class="author_name">%s</cite>'), get_comment_author_link()); ?>
<div class="comment-meta commentmetadata">发表于:<?php echo get_comment_time(&#39;Y-m-d H:i&#39;); ?></div>
   <?php edit_comment_link(&#39;修改&#39;); ?>
</div>
<div class="comment_text">
<?php if ($comment->comment_approved == '0') : ?>
<em>你的评论正在审核,稍后会显示出来!</em><br />
      <?php endif; ?>
      <?php comment_text(); ?>
</div>
</div>
<?php } ?>

Das obige Code wird verwendet WordPress-Funktion und entsprechende Beschreibung:

Funktionsname Funktionsfunktion
get_avatar($comment, 48) Holen Sie sich den Gravatar-Avatar des Kommentators, die Größe beträgt 48 * 48
comment_reply_link() Der Link zum Antworten auf die Nachricht
get_comment_author_link wird verwendet, um die Blog-Adresse des Kommentators abzurufen
get_comment_time Den Zeitpunkt für die Veröffentlichung des Kommentars abzurufen
edit_comment_link Der Administrator hat den Kommentar-Link geändert
comment_text() Kommentarinhalt ausgeben

Okay, jetzt können die Kommentare normal unten auf Ihrer Artikelseite angezeigt werden! Jetzt erstellen wir weiterhin das Formular zum Senden von Kommentaren, löschen den folgenden Code (also den Code des Kommentarformulars):

<!– Comment Form –>
<form id="comment_form" action="" method="post">
<h3>Add a comment</h3>
<div class="hr dotted clearfix"> </div>
<ul>
<li class="clearfix">
<label for="name">Your Name</label>
<input id="name" name="name" type="text" />
</li>
<li class="clearfix">
<label for="email">Your Email</label>
<input id="email" name="email" type="text" />
</li>
<li class="clearfix">
<label for="email">Your Website</label>
<input id="website" name="website" type="text" />
</li>
<li class="clearfix">
<label for="message">Comment</label>
<textarea id="message" name="message" rows="3" cols="40"></textarea>
</li>
<li class="clearfix">
<!– Add Comment Button –>
<a type="submit" class="button medium black right">Add comment</a> </li>
</ul>
</form>

und ändern ihn in:

<?php 
if ( !comments_open() ) :
// If registration required and not logged in.
elseif ( get_option(&#39;comment_registration&#39;) && !is_user_logged_in() ) : 
?>
<p>你必须 <a href="<?php echo wp_login_url( get_permalink() ); ?>">登录</a> 才能发表评论.</p>
<?php else  : ?>
<!-- Comment Form -->
<form id="commentform" name="commentform" action="<?php echo get_option(&#39;siteurl&#39;); ?>/wp-comments-post.php" method="post">
    <h3>发表评论</h3>
    <div class="hr dotted clearfix"> </div>
    <ul>
        <?php if ( !is_user_logged_in() ) : ?>
        <li class="clearfix">
            <label for="name">昵称</label>
            <input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="23" tabindex="1" />
        </li>
        <li class="clearfix">
            <label for="email">电子邮件</label>
            <input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="23" tabindex="2" />
        </li>
        <li class="clearfix">
            <label for="email">网址(选填)</label>
            <input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="23" tabindex="3" />
        </li>
        <?php else : ?>
        <li class="clearfix">您已登录:<a href="<?php echo get_option(&#39;siteurl&#39;); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="退出登录">退出 »</a></li>
        <?php endif; ?>
        <li class="clearfix">
            <label for="message">评论内容</label>
            <textarea id="message comment" name="comment" tabindex="4" rows="3" cols="40"></textarea>
        </li>
        <li class="clearfix">
            <!-- Add Comment Button -->
            <a href="javascript:void(0);" onClick="Javascript:document.forms[&#39;commentform&#39;].submit()" class="button medium black right">发表评论</a> </li>
    </ul>
    <?php comment_id_fields(); ?>
    <?php do_action(&#39;comment_form&#39;, $post->ID); ?>
</form>
<?php endif; ?>
Diese Funktion ist für einige Plug-ins reserviertAbmelden-LinkEmpfohlenes Lernen: „WordPress-Tutorial“
Funktionsname Funktionsfunktion
is_user_logged_in Bestimmen Sie, ob der Benutzer angemeldet ist
wp_login_url Blog-Login. Adresse
get_comment_author_link wird verwendet, um die Blog-Adresse des Kommentators zu erhalten
$comment_author Cookie lesen, wenn der Benutzer zuvor einen Kommentar abgegeben hat. Es hilft dem Benutzer automatisch, den Benutzernamen einzugeben in der E-Mail ', $post->ID);
wp_logout_url

Das obige ist der detaillierte Inhalt vonDer gesamte Prozess der WordPress-Theme-Erstellung (10): Kommentare erstellen.php. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:ludou.org. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen