کدهای مربوط به بخش نظرات وردپرس

قطعه کد وردپرس

کدهای مربوط به بخش نظرات وردپرس

خوب نبودخوبخیلی خوبعالیخیلی عالی (5٫00 از 2 رای)

با سلام خدمت تمامی بازدیدکننده‌گان محترم. در این نوشته قصد داریم قطعه کدهای مربوط به قسمت نظرات (دیدگاه‌ها) وردپرس را بررسی کنیم. مورد به مورد شرح می‌دهیم که چه قطعه کدهایی در قسمت نظرات وردپرس وجود دارند و وظیفه‌ی آنها چیست.

جلوگیری از دسترسی مستقیم به comments.php

<?php if(!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) : ?>
<?php endif; ?>

این کد باعث جلوگیری ورود کاربر به صفحه comments.php می شود ، برای چاپ مقداری می تونید از die استفاده کنید.

<?php if(!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) : ?>
<?php die('You can not access this page directly!'); ?>
<?php endif; ?>

کد درخواست رمز:

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

این قطعه کد قبل از دیدن پست از شما پسورد می خواد و اگر شما پسورد را نداشته باشید نمی تونید پست مربوطه را ببنید.

If اول چک می کند آیا پسوردی ست شده است یا نه ، if دوم کوکی را چک می کند و اگر پسوردی نباشد پیغامی چاپ می کند ، می توانید پیغام دل خواه خود را در if دوم قرار دهید.

کد نمایش کامنت ها :

<?php if($comments): ?>
<?php foreach ($comments as $comment) : ?>
<?php if ($comment->comment_approved == '0') : ?>
<?php endif; ?>
<?php endforeach; ?>
<?php else : ?>
<?php endif; ?>

اولین شرط چک می کند آیا کامنتی هست ؟ اگر هست آن را داخل یک foreach قرار می دهد ، داخل foreach شرط دیگری هست که چک می کند اگر کامنت ها تایید شده بودند نمایش می دهد و اگر تایید نشده بودند پیغامی چاپ می کند.

مثال دیگر

<?php if($comments) : ?>
<ol>
<?php foreach($comments as $comment) : ?>
<li>
<?php if($comment->comment_approved == '0') : ?>
Your comment is awaiting approval
<?php endif; ?>
Your comment
</li>
<?php endforeach; ?>
</ol>
<?php else : ?>
No comments
<?php endif; ?>

چند تیمپلیت تگ مهم و مثال :

Template Tag Description
<?php comment_ID(); ?> ای دی کامنت
<?php comment_author(); ?> کامنت نویسنده
<?php comment_author_link(); ?> اگر نویسنده سایت خودش را معرفی کرده باشد لینک آن را می دهد
<?php comment_type(); ?> نوع کامنت pingback, trackback or a comment
<?php comment_text(); ?> کامنت واقعی
<?php comment_date(); ?> تاریخ پست کامنت
<?php comment_time(); ?> زمان پست کامنت

نتیجه‌ی نهایی:

<?php if($comments) : ?>
<ol>
<?php foreach($comments as $comment) : ?>
<li id="comment-<?php comment_ID(); ?>">
<?php if ($comment->comment_approved == '0') : ?>
Your comment is awaiting approval
<?php endif; ?>
<?php comment_text(); ?>
<cite>
<?php comment_type(); ?> by <?php comment_author_link(); ?> on <?php comment_date(); ?> at <?php comment_time(); ?>
</cite>
</li>
<?php endforeach; ?>
</ol>
<?php else : ?>
No comments yet
<?php endif; ?>

این کد را درcomment.php وارد کنید یک لیست از کامنت ها و اطلاعات آنها به شما می دهد و اگر کامنتی نباشد می گوید کامنتی نیست .

عبارات شرطی :

<?php if(comments_open()) : ?>
<?php if(get_option('comment_registration') && !$user_ID) : ?>
<?php else : ?><?php if($user_ID) : ?>
<?php else : ?>
<?php endif; ?>
<?php endif; ?>
<?php else : ?>
<?php endif; ?>

اولین شرطی که می بینید <?php if(comments_open()) : ?> اگر کامنت باز است که واضحه چی می شه اما اگر کامنت بسته باشد شما نمی توانید کامنتی بگذارید و البته به جای کامنت هم نیازی نسیت .

شما می تونید پیام مناسبی را برای نمایش بین <?php else : ?> و <?php endif; ?> قرار دهید .

READ  ساختار URL دوستانه سئو در وردپرس چیست؟

دومین شرط <?php if(get_option(‘comment_registration’) && !$user_ID) : ?>

این شرط چک می کنید آیا برای گذاشتن کامنت باید لوگین کنید یا نه اگر لوگین نباشید لینکی برای لوگین به شما نمایش داده خواهد شد

اگر لوگین کردن نیازی نباشد و یا شما لوگین کرده باشید فرم را به شما نشان می دهد.

و آخرین شرط چک می کند اگر شما لوگین کرده اید یا نه ؟

اگر شما لوگین کرده باشید بی فایده است که از شما بخواهد قسمت نام ایمیل و وب سایت را پر کنید .

اضافه کردن فرم :

ما اینجا فرم را ایجاد کی کنیم ، و شرط ها را نیز می نویسیم .

<?php if(comments_open()) : ?>
<?php if(get_option('comment_registration') && !$user_ID) : ?>
You must be <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>">logged in</a> to post a comment.
<?php else : ?>
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
<?php if($user_ID) : ?>
<?php else : ?>
<?php endif; ?>
</form>
<?php endif; ?>
<?php else : ?>
The comments are closed.
<?php endif; ?>

همان طور که قبلا گفتم آخرین شرط چک می کند آیا شما لوگین هستید یا نه ؟

فیلد های نام وب سایت و ایمیل زمانی به شما نشان داده می شود که شما لوگین نباشید .

بیاید آن را داخل کد ببینیم :

<?php if(comments_open()) : ?>
<?php if(get_option('comment_registration') && !$user_ID) : ?>
You must be <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>">logged in</a> to post a comment.
<?php else : ?>
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
<?php if($user_ID) : ?>
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="Log out of this account">Log out &raquo;</a>
<?php else : ?>
<input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" />
<label for="author">
<small>Name <?php if($req) echo "(required)"; ?></small>
</label>
<input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" />
<label for="email">
<small>Mail (will not be published) <?php if($req) echo "(required)"; ?></small>
</label>
<input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" />
<label for="url">
<small>Website</small>
</label>
<?php endif; ?>
</form>
<?php endif; ?>
<?php else : ?>
The comments are closed.
<?php endif; ?>

تقریبا کاملش کردیم و فقط چند خط کد ساده نیاز داریم برای ایجاد texteara و submit button و این ها را بعد از آخرین شرط قرار می دهیم.

<?php if(comments_open()) : ?>
<?php if(get_option('comment_registration') && !$user_ID) : ?>
You must be <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>">logged in</a> to post a comment.
<?php else : ?>
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
<?php if($user_ID) : ?>
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="Log out of this account">Log out &raquo;</a>
<?php else : ?>
<input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" />
<label for="author">
<small>Name <?php if($req) echo "(required)"; ?></small>
</label>
<input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" />
<label for="email">
<small>Mail (will not be published) <?php if($req) echo "(required)"; ?></small></label>
<input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" />
<label for="url"><small>Website</small></label>
<?php endif; ?>
<textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea>
<input name="submit" type="submit" id="submit" tabindex="5" value="Submit Comment" />
<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
<?php do_action('comment_form', $post->ID); ?>
</form>
<?php endif; ?><?php else : ?>
The comments are closed.
<?php endif; ?>

Gravatars

از ورد پرس ۲٫۵ کاستم تیمپلیت های وجود دارد که gravatars را امبد کرده است . اون gravatar رااز ایمیل کاربر میکشد و این هم کد آن

<?php echo get_avatar($author_email, $size, $default_avatar ); ?>

می تونید $author_email را با get_comment_author_email(); عوض کنید ، size ارتفاع و عرض را مشخص می کند . $default_avatarاگر کامنت گذار آواتاری نداشته باشد یک آواتار به صورت پیشفرض می گذارد.

READ  آموزش ساخت پلاگین برای وردپرس قسمت ششم

این کد را داخل حلقه foreach قرار دهید تا کامنت ها را برای شما نمایان کند چیزی که به شما نمایش خواهد داد یک عکس با کلاس آواتار و avatar-$size همان سایزی که مشخص کردید ، با کمی سی اس اس می توانید چیزی شبیه شکل زیر داشته باشید .

شماره کامنت ها :

در بعضی موارد می بینید که نوشته ای با این مضمون وجود دارد ۳ نظر تا کنون ، انجام این کار به لطف تمپلیت تگ های ورد پرس بسیار را حت است .

<?php comments_number($zero_comments, $one_comment, $more_comments); ?>

$zero_comments متنیست که زمانی که کامنتی نسیت نمایش داده می شود

$one_comment زمانی که یک کامنت وجود داشته باشد نمایان می شود

$more_comments زمانی نمایان می شود که بیش از یک کامنت وجود داشته باشد .

مثال :

<?php comments_number('No comments', 'One comment', '% comments'); ?>

من از % برای چندین کامنت استفاده کردم

فانکشن comments_number به جای % اعداد ۲و۳و… قرار خواهد داد .

تو فایل comments.php خودمون ازش استفاده می کنیم و شما چیزی شبیه این خواهید دید.

لینک کامنت ها :

برای اضافه کردن لینک کامنت از کد زیر استفاده می کنیم .

<?php comments_popup_link($zero_comments, $one_comment, $more_comments, $css_class, comments_closed

۳ پارامتر اول مثل پارامتر های فانکشن comments_number هستند .

Css_class که واضح برای سی اس اس شماست

comments_closed متنی است که موقع بستن کامنت نمایش داده می شود.

مثال:

<?php comments_popup_link('No comments', 'One comment', '% comments', 'comments-link',

comments-link به شما لینک سی اس اس را می دهد .

ویرایش کامنت :

در مواقعی می خواهید کامنت را ویرایش کنید برای این کار از فانکشن زیر استفاده می کنیم :

<?php edit_comment_link($link_text, $before_link, $after_link); ?>

این کد را باید در داخل یک foreach قرار دهید .

link_text یک نوشته anchor است برای لینک ویرایش

after_link به ترتیب متن و یا کدی است که قبل و بعد لینک قرار می گیرد.

رنگ های متناوب برای کامنت :

برای اینکه کامنت ها یکی در میان رنگی شود از کد زیر استفاده می کنیم :

function alternate_rows($i){
if($i % 2) {
echo ' class="alt"';
} else {
echo '';
}}

شما باید این کد را داخل یک foreach قرار دهید ، همین طور می توانید li id=”comment-<?php comment_ID(); ?>”> با

<?php $i++; ?><li<?php alternate_rows($i); ?> id=”comment-<?php comment_ID(); ?>”>

عوض کنید .

این تمام کامنت هایی که کلاس alt دارند را به شما می دهد و به این ترتیب می تونیم با css تغییرش بدیم .

نمایش تگ های مجاز :

برای نمایش تگ هایی که کامنت گذار مجاز به استفاده است می توانید از فانکشن زیر استفاده کنید :

Allowed tags: <?php echo allowed_tags(); ?>

Comments RSS link:

برای دادن یک لینک به rss از کد زیر استفاده می کنیم :

<?php comments_rss_link($link_text); ?>
<h4>

$link_test را با متن anchor برای لینک RSS تعویض کنید .

پایان :

امید وارم از این آموزش کوتاه لذت برده باشید ، می توانید تمام این کد ها را از این لینک دریافت کنید ، واضح است comments link کار نمی کند مگر اینکه داخل یک لوپ استفاده بشود .

READ  آموزش نصب وردپرس در لوکال هاست xampp

comments.php

<?php if(!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) : ?>
<?php die('You can not access this page directly!'); ?>
<?php endif; ?> <?php if(!empty($post->post_password)) : ?>
<?php if($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) : ?>
This post is password protected. Enter the password to view comments.
<?php endif; ?><?php endif; ?> <?php if($comments) : ?>
<ol>
<?php foreach($comments as $comment) : ?>
<li id="comment-<?php comment_ID(); ?>">
<?php if ($comment->comment_approved == '0') : ?>
Your comment is awaiting approval
<?php endif; ?>
<?php comment_text(); ?>
<?php comment_type(); ?> by <?php comment_author_link(); ?> on <?php comment_date(); ?> at <?php comment_time(); ?>
</li>
<?php endforeach; ?>
</ol>
<?php else : ?>
No comments yet
<?php endif; ?> 
<?php if(comments_open()) : ?>
<?php if(get_option('comment_registration') && !$user_ID) : ?>
You must be <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>">logged in</a> to post a comment.
<?php else : ?>
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
<?php if($user_ID) : ?>
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="Log out of this account">Log out &raquo;</a>
<?php else : ?>
<input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" />
<label for="author"><small>Name <?php if($req) echo "(required)"; ?></small></label>
<input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" />
<label for="email">
<small>Mail (will not be published) <?php if($req) echo "(required)"; ?></small>
</label>
<input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" />
<label for="url"><small>Website</small></label>
<?php endif; ?>
<textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea>
<input name="submit" type="submit" id="submit" tabindex="5" value="Submit Comment" />
<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />
<?php do_action('comment_form', $post->ID); ?>
</form>
<?php endif; ?><?php else : ?>
The comments are closed.
<?php endif; ?>
<h4>

هومن معین

از سال ۱۳۸۷ در زمینه‌ی طراحی سایت و خصوصا سیستم مدیریت محتوای وردپرس فعالیت می‌کنیم. همچنین چندسالی هست که دارکوب وب را راه اندازی کرده ام و مشغول کار در این مجموعه هستم.

مقالات پیشنهادی دارکوب وب

خبرنامه دارکوب وب

با عضویت در خبرنامه دارکوب وب، هر هفته یک ایمیل از آخرین مقالات و تخفیفات هیجان انگیز ما مطلع شوید.

3 پاسخ
  1. javidan
    javidan گفته:

    سلام
    میشه یک نگاه به بخش کد های قالب من بندازید؟
    پاسخ هایی که من میدم رو نشون نمیده همچنین پاسخ به این نظر رو هم نشون نمیده مثلا در این صفحه
    http://cesardl.info/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D9%81%DB%8C%D9%84%D9%85-%DA%AF%D8%B1%DA%AF-%D9%88-%DA%A9%D9%88%D8%AF%DA%A9-the-fox-and-the-child-2007-%D8%AF%D9%88%D8%A8%D9%84%D9%87-%D9%81%D8%A7%D8%B1%D8%B3/
    ۴ تا کامنت هستش ولی فقط یکیشو نشون میشده
    اینم کد های کامنت هستش
    http://cesardl.info/wp-content/uploads/2017/07/comments.txt
    ممنون

    پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

READ  آموزش ساخت پلاگین برای وردپرس قسمت ششم