Rumah  >  Artikel  >  Tutorial CMS  >  Keseluruhan proses penciptaan tema WordPress (10): membuat komen.php

Keseluruhan proses penciptaan tema WordPress (10): membuat komen.php

藏色散人
藏色散人ke hadapan
2023-02-21 10:12:301820semak imbas

Saya memperkenalkan anda kepada "Keseluruhan proses penghasilan tema WordPress (9): Membuat single.php ". it together~

Keseluruhan proses penciptaan tema WordPress (10): membuat komen.php

Hari ini kami akan membuat modul ulasan untuk tema komen. Buat comments.php baharu di bawah direktori tema Aurelius, potong kod berikut dalam single.php dan tampalkannya ke dalam comments.php:

<!– 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>

Tambah kod dalam kedudukan asal single.php:

<?php comments_template(); ?>

Fungsi pernyataan di atas adalah untuk mengimport semua kandungan dalam comments.php ke dalam single.php, yang mempunyai kesan yang sama seperti menulis kod dalam comments.php terus dalam single.php.

Atas sebab keselamatan dan untuk menghalang pengguna yang berniat jahat daripada membuka fail ulasan secara langsung, sila tambah kod berikut dalam pengepala comments.php:

<?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;);
?>

Oleh kerana fungsi komen keluaran WordPress wp_list_comments( ) output Kod ulasan berbeza daripada kod ulasan tema kami Kami perlu menyesuaikan senarai ulasan kami dan memadam kod berikut dalam comments.php (kod berikut digunakan untuk menyenaraikan semua ulasan pada artikel):

<.>
<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>
Tukar kepada:

<?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;);
        }
    ?>
Anda boleh melihat secara kasar maksud kod di atas, ia adalah banyak jika... maka..., jika syarat di atas tidak dipenuhi, senaraikan semua Komen. Sekarang tukar ?> dalam functions.php dalam folder tema Aurelius kepada kod berikut Jika functions.php yang anda muat turun dari blog ini sebelum ini sudah mempunyai kod berikut, tidak perlu menambahnya:

Fungsi WordPress dan perihalan sepadan yang digunakan dalam kod di atas:
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 } ?>
get_comment_time$comment_author td>
Nama fungsi Fungsi
get_avatar($tvatar)
comd="nowcmVzcy5vcmcvVGVtcGxhdGVfVGFncy9jb21tZW50X3JlcGx5X2xpbms"_>comd="norep>">com Pautan untuk membalas mesej
get_comment_author_link Digunakan untuk mendapatkan alamat blog pengulas
Dapatkan masa penerbitan ulasan
edit_comment_link

Pautan pentadbir untuk mengedit ulasan
comment_text() Output comment content okey kini Komen boleh dipaparkan seperti biasa di bahagian bawah halaman artikel anda! Sekarang kami terus membuat borang untuk menyerahkan ulasan Padamkan kod berikut (iaitu, kod borang ulasan):
函数名称 函数功能
get_avatar($comment, 48) 获取评论者的gravatar头像,尺寸为48 * 48
comment_reply_link() 回复留言的链接
get_comment_author_link 用于获取评论者博客地址
get_comment_time 获取评论发布时间
edit_comment_link 管理员修改评论的链接
comment_text() 输出评论内容

dan tukarkannya kepada:
<!– 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>

Nama fungsi Fungsi
td> Tentukan sama ada pengguna dilog masuk
get_comment_author_links
<?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; ?>
Baca kuki, Jika pengguna telah membuat ulasan sebelum ini, secara automatik membantu pengguna mengisi nama pengguna
$comment_author_email Baca kuki, jika pengguna telah membuat ulasan sebelum Kemudian secara automatik membantu pengguna mengisi E-mel
$comment_author_url Baca kuki, dan jika pengguna telah menyiarkan ulasan sebelum ini, secara automatik membantu pengguna mengisi alamat blog
do_action('comment_form', $post->ID); Fungsi ini dikhaskan untuk beberapa pemalam
wp_logout_url Pautan Log Keluar
函数名称 函数功能
is_user_logged_in 判断用户是否登录
wp_login_url 博客登录地址
get_comment_author_link 用于获取评论者博客地址
$comment_author 读取cookie,如果该用户之前已经发表过评论则自动帮助用户填写用户名
$comment_author_email 读取cookie,如果该用户之前已经发表过评论则自动帮助用户填写Email
$comment_author_url 读取cookie,如果该用户之前已经发表过评论则自动帮助用户填写博客地址
do_action('comment_form', $post->ID); 该函数为某些插件预留
wp_logout_url 退出登录的链接
Pembelajaran yang disyorkan: "

Tutorial WordPress"

Atas ialah kandungan terperinci Keseluruhan proses penciptaan tema WordPress (10): membuat komen.php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:ludou.org. Jika ada pelanggaran, sila hubungi admin@php.cn Padam