
comment_form(array $args = array(), int|WP_Post $post_id = null)
نمایش کامل یک فرم نظردهی با یک قالب مشخص با استفاده از comment_form
توضیحات تابع comment_form
بیشتر فیلدهای متنی در فرم به وسیله آرایه args کنترل میشود و با این آرایه به تابع ارسال میگردد. در صورتی که بخواهید میتوانید با استفاده از ‘comment_form_default_fields’ فیلدهای پیش فرض فرم نظرات را فیلتر کنید یا اگر بخواهید فیلدی را حذف یا اضافه کنید.
تمام فیلدها به صورت جداگانه با استفاده از فیلتر ‘comment_form_field_$name’ ارسال میشوند و شما می توانید به جای متغیر name میتوانید از نام فیلدها استفاده کنید.
پارامترهای تابع comment_form:
- args: این پارامتر دلخواه است و در صورتی که بخواهید فیلدهای پیش فرض فرم نظرات را تغییر دهید از آن استفاده میکنید.(مقدار از نوع آرایه و اختیاری است).
- fileds: این پارامتر درون آرایه args استفاده می شود و میتواند فیلدهای فرم نظرات را شخصی سازی کند. این تغییرات با فراخوانی هوک comment_form_default_fields انجام میشود و شامل فیلدهای زیر است:
- author: فیلد HTML مربوط به ارسالکننده(author) میباشد.
- email: فیلد HTML مربوط به ایمیل ارسالکننده(email) میباشد.
- url: فیلد HTML مربوط به آدرس وبسایت ارسالکننده(URL) می باشد.
- cookies: فیلد HTML مربوط به تایید کاربر برای کوکی میباشد.
- comment_fileds: فیلد HTML مربوط به توضیحات(textarea) نظرات میباشد.
- must_log_in: فیلد HTML مربوط به نمایش پیغام “برای ثبت نظر باید به حساب کاربری خود وارد شوید” میباشد.
- logged_in_as: فیلد HTML نمایش پیغام به کاربر ” شما با عنوان [نام کاربر] وارد شدهاید” میباشد.
- comment_note_before: فیلد HTML مربوط به نمایش پیغام ” ایمیل شما منتشر نخواهد شد” قبل از فیلدهای نظرات اگر کاربر وارد نشده باشد.
- action: تعریف ویژگی اکشن مربوط به فرم نظرات. به صورت پیش فرض فایل wp-comments-post.php میباشد.
- id_form: تعریف ویژگی id فرم. به صورت پیشفرض مقدار commentform برای آن ثبت شده است.
- id_submit: ویژگی id مربوط به دکمه submit. به صورت پیشفرض بر روی مقدار submit تنظیم شده است.
- calss_submit: ویزگی کلاس مربوط به دکمه submit در فرم است که با مقدار پیش فرض submit تنظیم شده است.
- name_submit: ویژگی نام دکمه submit می باشد و به صورت پیشفرض بر روی submit تنظیم شده است.
- title_reply: برچسب قابل ترجمه دکمه reply . به صورت پیشفرض با مقدار Leave a Reply تنظیم شده است.
- title_reply_to: متن برچسب قابل ترجمه دکمه ‘reply-to’. به صورت پیشفرض مقدار آن بر روی ‘Leave a Reply to %s’ تنظیم شده است .
- title_reply_before: تگ HTML مربوط به قبل از عنوان فرم نظرات میباشد و به صورت پیشفرض مقدار
<h3 id="reply-title" class="comment-reply-title">
تنظیم شده است. - title_reply_after: تگ HTML که بعد از عنوان فرم نظرات قرار میگیرد. پیشفرض بر روی
</h3>
ست شده است. - cancel_reply_before: تگ HTML قبل از دکمه انصراف از پاسخ.
- cancel_reply_after: تگ HTML بعد از دکمه انصراف از پاسخ.
- cancel_reply_link: متن برچسب قابل ترجمه دکمه انصراف از پاسخ.
- label_submit: متن برچسب قابل ترجمه label_submit . به صورت پیش فرض مقدار ‘Post a comment ‘ میباشد.
- submit_button: فرمت تگ HTML مربوط به دکمه submit می باشد و به صورت پیش فرض مقدار
<input name="%1$s" type="submit" id="%2$s" class="%3$s" value="%4$s" />
برای آن ست شده است. - submit_button: فرمت تگ HTML برای دکمه submit و فیلدهای مخفی فرم. به صورت پیشفرض بر روی مقدار
<p class="form-submit">%1$s %2$s</p>
تنظیم شده است. به جای مقادیر %1$s و %2$s فیلدهای مخفی قرار میگیرد. - format: فرمت فرم را تعیین میکند مقدار پیشفرض ‘xhtml’ میباشد و مقدار ‘html5’ را هم میتوان برای آن ست کرد.مقدار پیشفرض این پارامتر از نوع آرایه میباشد.
- fileds: این پارامتر درون آرایه args استفاده می شود و میتواند فیلدهای فرم نظرات را شخصی سازی کند. این تغییرات با فراخوانی هوک comment_form_default_fields انجام میشود و شامل فیلدهای زیر است:
- post_id: مقدار این پارامتر POST ID یا WP_Post که به صورت object برای فرم تولید میشود. مقدار پیشفرض پست جاری است. ( اختیاری از نوع عددی). مقدار پیش فرض آن null میباشد.
منبع comment_form:
File: wp-includes/comment-template.php
مثال: یک نمونه کد ساده برای سفارشی سازی فرم comment_form
$comments_args = array(
// Change the title of send button
'label_submit' => __( 'Send', 'textdomain' ),
// Change the title of the reply section
'title_reply' => __( 'Write a Reply or Comment', 'textdomain' ),
// Remove "Text or HTML to be displayed after the set of comment fields".
'comment_notes_after' => '',
// Redefine your own textarea (the comment body).
'comment_field' => '< p class="comment-form-comment">
< textarea id="comment" name="comment" aria-required="true"></ textarea></ p>',
);
comment_form( $comments_args );
میتوانید مقالات زیر را برای درک تابع comment_form مطالعه کنید.