زمان اضافه کردن یک نظر پاسخ نظر است. نظرات وردپرس – طراحی ظاهری کامل

وردپرس دارای چندین نوع محتوا مانند پست، صفحه، نظر است. وردپرس یک پلت فرم بسیار منعطف است که به شما امکان می دهد محتوای اصلی را متناسب با سایت خود سفارشی کنید. شما می توانید ظاهر و عملکرد را تغییر دهید. در این آموزش به شما نشان خواهیم داد که چگونه رفتار و ظاهر نظرات را در یک سایت وردپرسی تغییر دهید.

مرحله 1. درک تابع comment_form و آرگومان های آن

بیایید نگاهی به تابع comment_form وردپرس بیندازیم. این مسئول نمایش فرم نظری است که در صفحه یا پست ظاهر می شود. فراخوانی این تابع عمدتاً در فایل comments.php در پوشه تم یافت می شود. این فایل در جاهای مختلف، به عنوان مثال در فایل های single.php و page.php، به طور مستقیم یا از طریق فراخوانی تابع comments_template گنجانده شده است.

شرح عملکرد را می توان در کدکس وردپرس یافت.

اگر از تابع comment_form برای نمایش فرم استفاده کنید، با استفاده از پارامترهای پیش‌فرض رندر می‌شود و حاوی فیلدهایی مانند نام، ایمیل (هر دو فیلد الزامی است)، وب‌سایت و محتوای نظر است. در تم پیش فرض Twenty Eleven، فرم به این شکل خواهد بود.

چند آرگومان مهم برای تابع comment_form:

  • فیلدها - می توانید از آن برای کنترل نمایش فیلدها در فرم نظر استفاده کنید.
  • comment_notes_before و comment_notes_after - برای نمایش اطلاعات قبل و بعد از فرم استفاده می شود.
  • title_reply - برای تغییر عنوان پاسخ استفاده می‌شود، که به طور پیش‌فرض روی «ارسال یک پاسخ» است.
  • label_submit - برای تغییر متن روی دکمه ارسال نظر استفاده می شود.
مرحله 2. فرم نظر را با استفاده از تابع comment_form سفارشی کنید

حالا بیایید فرم نظر خود را با ارسال آرگومان ها به تابع comment_form تنظیم کنیم.

در صورتی که نیاز به سفارشی سازی فیلدها در فرم نظر داشته باشیم، باید لیستی از آنها را به تابع comment_form ارسال کنیم. به طور پیش فرض، تابع از لیست فیلدهای زیر استفاده می کند:

$fields = آرایه ("نویسنده" => "

" . "" . __("نام") . " " . ($req ? "*" : "") ."

", "email" => " "، "url" => "

" . __("سایت اینترنتی") . "" . "

",);

اگر نیاز به حذف یک فیلد، به عنوان مثال وب سایت داشته باشیم، به سادگی آن را از آرایه حذف می کنیم و آرایه را به تابع comment_form ارسال می کنیم.

$commenter = wp_get_current_commenter(); $req = get_option("require_name_email"); $aria_req = ($req ? " aria-required="true"" : ""); $fields = آرایه ("نویسنده" => "

" . "" . __("نام") . " " . ($req ? "*" : "") ."

", "email" => " "،)؛ $comments_args = آرایه ("fields" => $fields)؛ comment_form($comments_args);

علاوه بر این، نام فرم را نیز به «لطفا نظر ارزشمند خود را به ما بدهید» و نوشته روی دکمه را به «نظر من ارسال کنید» تغییر می‌دهیم.

برای تکمیل کار، آرگومان های زیر را به تابع comment_form ارسال می کنیم:

$commenter = wp_get_current_commenter(); $req = get_option("require_name_email"); $aria_req = ($req ? " aria-required="true"" : ""); $fields = آرایه ("نویسنده" => "

" . "" . __("نام") . " " . ($req ? "*" : "") ."

", "email" => " ",); $comments_args = array("fields" => $fields, "title_reply"=>"لطفا نظر ارزشمند خود را به ما بدهید"، "label_submit" => "نظر من را ارسال کنید"); comment_form($comments_args);

اکنون فرم نظر به شکل زیر خواهد بود:

مرحله 3. حذف فیلدها از فرم با استفاده از قلاب

همچنین فرم نظر وردپرس را می توان با استفاده از قلاب ها و فیلترها تغییر داد. این تنظیم می تواند به ویژه هنگام کار با یک افزونه مفید باشد، زمانی که باید چندین عنصر را سفارشی کنید، اما فایل های تم را تغییر ندهید. فیلتر برای افزودن یا حذف فیلدها از فرم - " comment_form_default_fields "

بیایید فیلد URL را با استفاده از یک فیلتر حذف کنیم. کد بالا را می توان در یک افزونه یا در فایل functions.php تم فعال استفاده کرد.

تابع remove_comment_fields($fields) ( unset($fields["url"]); return $fields; ) add_filter("comment_form_default_fields"،"remove_comment_fields");

مرحله 4. با استفاده از یک هوک، داده ها را به فرم نظر اضافه کنید

می‌توانیم با استفاده از فیلتر «comment_form_default_fields» فیلدهایی را به فرم اضافه کنیم. بیایید فیلد سن نویسنده را با استفاده از فیلتر اضافه کنیم و این فیلد را با داده های اضافی ذخیره کرده و در نظر نمایش دهیم.

فیلدی مانند این اضافه کنید:

تابع add_comment_fields($fields) ($fields["age"] = "

" . __("سن") . "" . "

"; بازگشت $fields; ) add_filter("comment_form_default_fields","add_comment_fields");

#respond .comment-form-author label, #respond .comment-form-email label, #respond. پس‌زمینه: #eee; -webkit-box-shadow: 1px 2px rgba(204,204,204,0.8) 04، 0.8 رنگ: #555 اندازه قلم: 13px;

اکنون فرم نظر ما به شکل زیر خواهد بود:

اکنون سن به عنوان اطلاعات اضافی ذخیره می شود. باید از قلاب در "comment_post" استفاده کنید:

تابع add_comment_meta_values($comment_id) ( if(isset($_POST["سن"])) ($age = wp_filter_nohtml_kses($_POST["سن"]); ) ) add_action("comment_post", "add_comment_meta_values"، 1);

پس از ذخیره داده ها، می توان آن را به عنوان یک نظر مانند زیر خروجی داد:

مرحله 5. تنظیم نظرات برای انواع پست خاص

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

تابع add_comment_fields($fields) ( if(is_singular("books")) ($fields["age"] = "

" . __("سن") . "" . "

"; ) $fields را برگرداند؛ ) add_filter("comment_form_default_fields","add_comment_fields");

مرحله 6. یک تابع تماس برای نمایش نظرات ایجاد کنید

تابع wp_list_comments برای نمایش نظرات روی پست ها استفاده می شود. در کد وردپرسعملکرد به تفصیل شرح داده شده است.

wp_list_comments یک آرگومان 'بازگشت' دارد که در آن می توانید تابعی را تعریف کنید که هنگام نمایش نظر فراخوانی می شود.

در تم بیست یازده در فایل comments.php می توانید این خط را پیدا کنید:

Wp_list_comments(array("callback" => "twentyeleven_comment"));

بیایید آن را به:

Wp_list_comments(array("callback" => "my_comments_callback"));

تابع my_comments_callback برای هر پست فراخوانی می شود.

مرحله 7: استایل دادن به نظرات

حالا سبک کامنت را کمی تغییر می دهیم. ما به سادگی محتویات پست و فیلد سنی را که قبلا اضافه کرده بودیم نمایش خواهیم داد. همچنین رنگ پس‌زمینه نظرات را تغییر می‌دهیم.

کد تابع «my_comments_callback»:

تابع my_comments_callback($comment، $args، $depth) ($GLOBALS["comment"] = $comment; ?>

برای توضیح و آرگومان های پذیرفته شده تابع ()comments_template و سایر موارد ذکر شده در مقاله، به کدکس وردپرس نگاه کنید.

آماده سازی قالب

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

  • در اصل، می توانید نام فایل را هر چیزی که دوست دارید، و سپس مسیر این فایل را در comments_template() بنویسید، اما بهتر است به نام استاندارد پایبند باشید.
  • همچنین می توانید فایل را در پنل مدیریت WP ویرایش کنید.
  • البته بهترین کار این است که کد بنویسید و فوراً تأثیر آن را روی وبلاگ خود یا روی یک سرور محلی آزمایش کنید.

در وردپرس امکان غیرفعال کردن نظرات برای هر پست وجود دارد، بنابراین قبل از نمایش آنها باید "باز بودن" را بررسی کنید:

این یک کد بسته بندی برای اقدامات بعدی ما است. حالا بیایید یک ظرف برای بلوک نظرات با یک کلاس یا شناسه صحیح معنایی آماده کنیم (البته کلاس ترجیح داده می شود):

ما یک عنوان در داخل می نویسیم تا خوانندگان شما بفهمند که نظراتی در اینجا وجود دارد و هیچ چیز دیگری وجود ندارد، برچسب دقیقاً برای این کار مناسب است:

"

در اینجا یکی از توابع وردپرس - the_title () را نشان دادیم، نتیجه اجرای این تابع، خروجی عنوان پست یا صفحه فعلی خواهد بود. اگر نمی‌خواهید عنوان نمایش داده شود، می‌توانید به سادگی «نظرات خواننده» را بنویسید.

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

بنابراین، پس از این فرمول‌بندی مسئله، مشخص می‌شود که برای پیاده‌سازی به ساختارهای if/else و تابعی برای نمایش تعداد نظرات get_comments_number() نیاز داریم. اگر تابع 0 (صفر) را برگرداند، "هنوز هیچ نظری وجود ندارد..."، در غیر این صورت "کامنت های خواننده..." را نمایش می دهیم:

هنوز نظری وجود ندارد، اما شما می توانید اولین نظر خواننده در مورد مقاله "" باشید. بحث ها برای این صفحه بسته است

خروجی نظرات

عالی است، ما هدرها را بسته به وجود یا عدم وجود نظرات نمایش داده ایم، اکنون منطقی است که نظرات خود را نمایش دهیم - تابع wp_list_comments() مسئول این کار است. تابع پیش‌فرض تمام نظرات را در برچسب‌ها قرار می‌دهد

  • ، بنابراین باید یک wrapper با class assignment.commentlist اضافه کنید:

    () wp_list_comments آرایه‌ای از آرگومان‌ها را می‌گیرد که می‌توان از آنها برای سفارشی‌سازی انعطاف‌پذیر نمایش نظرات استفاده کرد. به عنوان مثال، می توانید اندازه آواتار، متن پاسخ نظر و سایر تنظیمات را با ارسال یک کلمه کلیدی و مقدار تغییر دهید:

    $args = آرایه ("avatar_size" => 64، // اندازه آواتار 64*64 پیکسل، پیش‌فرض 32 "reply_text" => "پاسخ" // متن پاسخ به نظر "Callback" => "My_Comments" // تابع برای ایجاد یک نوع نظر خارجی)

    پارامتر callback سزاوار توجه ویژه است، که مقدار نام یک تابع سفارشی را برای نمایش یک نظر می گیرد. با کمک آن، می توانید ظاهر هر نظر را به طور انعطاف پذیر سفارشی کنید. تابع خروجی استاندارد از فایل comment-template.php به این صورت است:




     

    شاید خواندن آن مفید باشد: