ဒီေနရာမွာ ကၽြန္ေတာ္တို့ theme ကိုပိုမိုျပည့္စံုေအာင္ comments.php ဆိုတဲ့ file ကိုဆက္ေရးၾကတာေပါ႔။ ကၽြန္ေတာ္တို့ အရင္ေရးထားတဲ့ အထဲမွာ comments.php file မပါပါဘူး။ ဒါပင္မယ့္ comments လည္းေပးလို့ရသလို ျပလည္းျပေပးႏုိင္ပါတယ္။ ဒါကဘာေၾကာင့္လည္းဆိုရင္ ကၽြန္ေတာ္တို့ theme မွာ comments.php file မပါရင္ \wp-content\themes\default ေအာက္က comments.php ကိုယူသံုးပါလို့ WordPress ကေရးထားလို့ပါ။
အခုကိုယ့္ comments file ကိုကိုယ့္ဟာကိုယ္စေရးၾကတာေပါ႔။
ကၽြန္ေတာ္ကေတာ႔ ဒီ file ကိုသံုးပိုင္းပိုင္းထားပါတယ္။

အပိုင္း(၁)

<?php
if (!empty($_SERVER[‘SCRIPT_FILENAME’]) && ‘comments.php’ == basename($_SERVER[‘SCRIPT_FILENAME’]))
die (‘Please do not load this page directly. Thanks!’);

ဒီ coding ေလးကေတာ႔ ကၽြန္ေတာ္တို႔ရဲ႔ comments ဖိုင္ကို တိုက္႐ုိက္ၾကည့္လို႔မရေအာင္ တားဆီးထားတာပါ။ post နဲ့မွတြဲၾကည့္လို့ ရေအာင္လုပ္ထားတာပါ။ ‘Please do not load this page directly. Thanks!’ ဆိုတဲ့စာသားေနရာမွာ သင္ႀကိဳက္တာ ထည့္လို့ရပါတယ္။

if ( post_password_required() ) { ?>
<p>This post is password protected. Enter the password to view comments.</p>
<?php
return;
}
?>

ဒီ coding မွာေတာ႔ post_password_required() ဆိုတာ WordPress ရဲ႔ function တစ္ခုပါဘဲ။ ဒီ post အတြက္ password “လို” ေသးလား “မလို” ဘူးလားဆိုတာကို စစ္ေဆးေပးပါတယ္။ “လို” ရင္ comments ကို မျပဘဲထားၿပီး “မလို” မွ ျပေပးမွာပါ။ (ကၽြန္ေတာ္ေျပာတဲ့ “လို” “မလို” ဆိုတာ မေပးထားရင္ “မလို” သလို ေပးထားေပမယ့္ ထည့္ၿပီးရင္လည္း “မလို” ပါဘူး။ )
ဒီေပၚပိုင္းက security ပိုင္းေပါ႔။ အခုမွကၽြန္ေတာ္တို့ရဲ႔ comments ကို စေခၚပါမယ္။

အပိုင္း(၂)
ဒီအပိုင္းကေတာ႔ comments ေတြကိုျပတဲ့အပိုင္းပါ။ for loop ကိုသံုးၿပီး ျပပါမယ္။ for loop မသံုးဘဲ wp_list_comments(); ဆိုတဲ့ function ကိုတန္းေခၚရင္လည္းရပါတယ္။
အရင္ comments ရွိမရွိစစ္ေဆးပါမယ္။

<?php if($comments) : ?>
comments မ်ားကို ဒီေနရာမွာ ျပပါမယ္။
<?php else : ?>
<p>No comments yet</p>
<?php endif; ?>

<?php if($comments) : ?>
<ol>
<?php foreach($comments as $comment) : ?>
<li id=”comment-<?php comment_ID(); ?>”>
<cite><?php comment_author_link(); ?> on <?php comment_date(); ?> at <?php comment_time(); ?></cite>
<?php comment_text(); ?>
</li>
<?php endforeach; ?>
</ol>
<?php else : ?>
<p>No comments yet</p>
<?php endif; ?>

“comment မ်ားကို ဒီေနရာမွာ ျပပါမယ္။” ဆိုတဲ့ေနရာမွာ for loop နဲ့ comment ေတြကို ျပေပးတာပါ။ <ol> တို့ <li> တို့ေရးထားပံုကိုလည္း သေဘာေပါက္မယ္ ထင္ပါတယ္။
comment_ID()=> comment id ကို return ျပန္ေပးပါလိမ့္မယ္။
comment_author_link() => သူ႔ site နဲ့ link လုပ္ၿပီးသား comment ေရးသူရဲ႔နာမည္ကို return ျပန္ေပးပါလိမ့္မယ္။
comment_date() => comment ေရးခဲ့တဲ့ date ကို return ျပန္ေပးပါလိမ့္မယ္။
comment_time() => comment ေရးခဲ့တဲ့ အခ်ိန္ကို return ျပန္ေပးပါလိမ့္မယ္။

အေပၚက coding ကို style အတြက္ လိုတာေလးေတြထည့္ၿပီး comment ရဲ႔ေခါင္းစဥ္ေလးတစ္ခုကိုထပ္ျဖည့္လိုက္ပါတယ္။

<?php if($comments) : ?>
<h3 id=”comments_head”>Discussion<?php comments_number(‘ No Comments’, ‘ One Comment’, ‘ % Comments’ );?></h3>
<ol>
<?php foreach($comments as $comment) : ?>
<li id=”comment-<?php comment_ID(); ?>”>
<cite><?php comment_author_link(); ?> on <?php comment_date(); ?> at <?php comment_time(); ?></cite>
<?php comment_text(); ?>
</li>
<?php endforeach; ?>
</ol>
<?php else : ?>
<p>No comments yet</p>
<?php endif; ?>

for loop မသံုးဘဲ ေအာက္ကလိုေရးခ်င္ရင္လည္းရပါတယ္။
<?php if ( have_comments() ) : ?>
<h3 id=”comments_head”>Discussion<?php comments_number(‘ No Comments’, ‘ One Comment’, ‘ % Comments’ );?></h3>
<ol>
<?php wp_list_comments(); ?>
</ol>
<?php else : ?>
<p>No comment yet.</p>
<?php endif; ?>

အပိုင္း(၃)

<?php if(comments_open()) : ?>
<?php if(get_option(‘comment_registration’) && !is_user_logged_in() ) : ?>
login ၀င္ရန္ လိုအပ္ရင္ link ေပးရန္
<?php else : ?>
comment form စတင္ရန္
<?php if ( is_user_logged_in() ) : ?>
login ၀င္ၿပီးသားဆိုရင္ username ေဖာ္ျပရန္
<?php else : ?>
login မ၀င္ထားရင္ username, email, website တို႔ရဲ႔ text box ျပရန္
<?php endif; ?>
comment text area ကိုေဖာ္ျပရန္
<?php endif; ?>
<?php else : //if(comments_open()) ?>
comment ဖြင့္မထားေၾကာင္းေရးရန္
<?php endif; //if(comments_open()) ?>

ပထမဆံုး if ေတာ႔ ဒီ post အတြက္ comments ဖြင့္ထားလားလို့စစ္ေဆးပါတယ္။ ဖြင့္ထားမွ က်န္တာေတြလုပ္မွာျဖစ္ၿပီး မဖြင့္ထားဘူးဆိုရင္ေတာ႔ “comment ဖြင့္မထားေၾကာင္းေရးရန္” ဆိုတဲေနရာမွာ ေရးထားတဲ့စာေၾကာင္းကို ျပပါလိမ့္မယ္။
ဒုတိယ if ကေတာ႔ ႏွစ္ပိုင္းပါပါမယ္။ ပထမဆံုး comment ေပးဖို႔အတြက္ registion လိုအပ္သလားလို႔ အရင္ၾကည့္ပါမယ္။ မလိုအပ္ဖူးဆိုရင္း and နဲ့ဆက္ထားတဲ့အတြက္ ေနာက္ကဘာျဖစ္ျဖစ္ else အပိုင္းကိုဘဲလုပ္ပါမယ္။ လိုအပ္တယ္ဆိုရင္း ေနာက္ကအပိုင္းကို ဆက္ၾကည့္ပါမယ္။ is_user_logged_in() ကို not ထည့္ထားပါတယ္။ if(!is_user_logged_in() )ဆိုတာ login ၀င္မထားဘူးဆိုရင္ “login ၀င္ရန္ လိုအပ္ရင္ link ေပးရန္” ဆိုတာကို လုပ္မွာျဖစ္ၿပီး။ login ၀င္ၿပီးသား ဆိုရင္ေတာ႔ else အပိုင္းကို ဆက္လုပ္ပါလိမ့္မယ္။
else အပိုင္းမွာေတာ႔ comment form ကိုစတင္ပါမယ္။ ၿပီးရင္ if တစ္ခါထပ္စစ္ထားပါတယ္။ login ၀င္ၿပီးသားလားလို့စစ္ပါမယ္။ login ၀င္ၿပီးသားဆိုရင္ username တို့ email တို့မျဖည့္ခိုင္းေတာ႔ဘဲ “comment text area ကိုေဖာ္ျပရန္” ဆိုတဲ့ေနရာမွာရွိတာကိုဆက္လုပ္ပါမယ္။ login မ၀င္ရေသးရင္ေတာ႔ username, email, website တို့ျဖည့္ဖို့ text box ေတြေရးပါမယ္။ logic ပိုင္းကေတာ႔ ဒီေလာက္ပဲလို့ထင္ပါတယ္။ က်န္တာေတြကေတာ႔ html နဲ့ သံုးထားတဲ့ template tag ေတြေလ့လာလိုက္ရင္ရမယ္ထင္ပါတယ္။ ေအာက္မွာ coding ကိုေဖာ္ျပထားပါတယ္။

<?php if(comments_open()) : ?>
<?php if(get_option(‘comment_registration’) && !is_user_logged_in() ) : ?>
<p>You must be <a href=”<?php echo wp_login_url( get_permalink() ); ?>”>logged in</a> to post a comment.</p>
<?php else : ?>
<form action=”<?php echo get_option(‘siteurl’); ?>/wp-comments-post.php” method=”post” id=”commentform”>
<?php if ( is_user_logged_in() ) : ?>
<p>Logged in as <a href=”<?php echo get_option(‘siteurl’); ?>/wp-admin/profile.php”><?php echo $user_identity; ?></a>. <a href=”<?php echo wp_logout_url(get_permalink()); ?>” title=”Log out of this account”>Log out &raquo;</a></p>
<?php else : ?>
<p><input type=”text” name=”author” id=”author” value=”<?php echo esc_attr($comment_author); ?>” size=”22″ tabindex=”1″ />
<label for=”author”><small>Name <?php if($req) echo “(required)”; ?></small></label></p>
<p><input type=”text” name=”email” id=”email” value=”<?php echo esc_attr($comment_author_email); ?>” size=”22″ tabindex=”2″ />
<label for=”email”><small>Mail (will not be published) <?php if($req) echo “(required)”; ?></small></label></p>
<p><input type=”text” name=”url” id=”url” value=”<?php echo esc_attr($comment_author_url); ?>” size=”22″ tabindex=”3″ />
<label for=”url”><small>Website</small></label></p>
<?php endif; ?>
<p><textarea name=”comment” id=”comment” cols=”100%” rows=”10″ tabindex=”4″></textarea></p>
<p><input name=”submit” type=”submit” id=”submit” tabindex=”5″ value=”Submit Comment” />
<?php comment_id_fields(); ?></p>
<?php do_action(‘comment_form’, $post->ID); ?>
</form>
<?php endif; ?>
<?php else : //if(comments_open()) ?>
<p>The comments are closed.</p>
<?php endif; //if(comments_open()) ?>

ဒီ post က wordpress 3 မထြက္ခင္တည္းက ေရးျဖစ္တာ။ အခု WordPress 3 ကထြက္လာေတာ႔ ၾကည့္လိုက္တာ။ comment_form() ဆိုတဲ့ function ေခၚလိုက္တာနဲ့ အပိုင္း 3 ကေရးစရာေတာင္ မလိုေတာ႔ဘူး။

About wailynnoo

wailynn oo has written 57 post in this Website..

I am a blogger.