Botvinya اضافه کردن نظر پاسخ نظر. تنظیم دقیق فرم نظر. نحوه استایل دادن به نظرات درختی

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

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

در اینجا کاری است که ما انجام خواهیم داد:

  • سفارشی سازی کامل
  • طراحی ظاهری
  • شماره گذاری نظرات
  • شمارش پیام ها به ازای هر کاربر
  • به هر کاربر یک وضعیت اختصاص دهید
  • و چیزهای کوچک دیگر

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

سفارشی کردن نظرات

در وردپرس نظرات از طریق تابع wp_list_comments معمولا در فایل comments.php نمایش داده می شوند. و تشکیل توابع فردی، و همچنین خود چرخه، از الگوی فایل سیستم comment-template.php استفاده می شود. اما در موارد نادر، ممکن است تنظیمات در قالب وردپرس، فایل functions.php یا comments.php قرار گیرد.

بنابراین، اگر موضوع شما در یک مورد نادر قرار نمی گیرد و باید تنظیمات خود را انجام دهید، فایل functions.php را باز کنید و قبل از علامت ?> کد زیر را اضافه کنید:

اگر (! function_exists("my_comment")): تابع my_comments($comment, $args, $depth) ( جهانی $commentnumber; $GLOBALS["comment"] = $comment; سوئیچ ($comment->comment_type) : case " pingback" : case "trackback" : ?>

  • ", ""); ?>
  • id="li-comment-">
    comment_parent) $avatar_size = 39; echo get_avatar ($comment، $avatar_size); /* مترجمان: 1: نویسنده نظر، 2: تاریخ و زمان */ printf(__("%1$s %2$s"، "my_press")، sprintf(" %s"، get_comment_author_link())، sprintf(" "، esc_url(get_comment_link($comment->comment_ID))، get_comment_time("c")، /* مترجمان: 1: date، 2: time */ sprintf(__("%1$s %2$s"، " my_press")، get_comment_date()، get_comment_time())))؛ ?>
    comment_approved == "0"): ?>
    __("پاسخ"، "my_press")، "depth" => $depth، "max_depth" => $args["max_depth"]))); ?>
    ", ""); ?>

    سپس در فایل comments.php یک تابع فراخوانی اضافه کنید:

      "نظر های من"))؛ $commentnumber = 0; ?>

    پس از این دستکاری ها، نظرات شما با استفاده از یک تابع قالب از فایل functions.php موضوع فعلی ایجاد می شود.

    شمارش نظرات به ازای هر کاربر

    با استفاده از تابع ارائه شده در زیر، می توانیم تعداد کل پیام های باقی مانده در کنار مفسر را نمایش دهیم. بنابراین، می توانید مشاهده کنید که کاربر چقدر فعال است، و علاوه بر این، آمار هرگز اضافی نیست، به خصوص در این زمینه.

    فایل functions.php را که قبلاً با آن آشنا هستیم باز می کنیم و کد زیر را در انتها قبل از علامت ?> اضافه می کنیم:

    //شمارش پیام های کاربر تابع bac_comment_count_per_user() ( جهانی $wpdb; $comment_count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM ". $wpdb->comments." WHERE comment_author_email = "" . get_comment_author()_." "AND comment_approved = "1" AND comment_type NOT IN ("pingback", "trackback")"); if ($comment_count == 1) ( echo " 1 Message"; ) other ( echo " " . $comment_count . " پیامها ";))

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

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

    بسته به تعداد نظرات به هر کاربر یک وضعیت اختصاص می دهیم

    این دقیقاً موردی است که آمار قطعا نقش مهمی دارد. از آنجایی که تابع بر اساس تعداد پیام ها ساخته شده است و عدد حاصل وضعیت مناسب را به کاربر می دهد. این، در تئوری، در هر فروم برای نشان دادن قدرت کاربر در یک منبع خاص استفاده می شود.

    فایل functions.php را دوباره باز کنید و قبل از علامت ?> کد زیر را اضافه کنید:

    // تابع وضعیت کاربر get_author_class($comment_author_email,$user_id)( جهانی $wpdb; $adminEmail = get_option("admin_email"); $author_count = count($wpdb->get_results("SELECT comment_ID as author_mindse FROM $d "; if($author_count>=1 && $author_count<50 && $comment_author_email !==$adminEmail) echo "Прохожий"; else if($author_count>=50 && $author_count<100 && $comment_author_email !==$adminEmail) echo "Новичок"; else if($author_count>=100 &&$author_count<250 && $comment_author_email !==$adminEmail) echo "Знающий"; else if($author_count>=250 &&$author_count<400 && $comment_author_email !==$adminEmail) echo "Опытный"; else if($author_count>=400 &&$author_count<800 && $comment_author_email !==$adminEmail) echo "Бывалый"; else if($author_count>=800 && $author_count<1200 && $comment_author_email !==$adminEmail) echo "СуперПупер"; else if($author_count>استاد"؛ )

    و در محل مورد نظر تابع فراخوانی را نمایش می دهیم:

    comment_author_email,$comment->user_id)?>

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

    کد نظر کاملاً تمام شد

    در اینجا به پایان این مقاله می رسیم. در اینجا من تنبل نبودم و تمام عملکردها از جمله تنظیم نظرات را در یک کد آماده جمع آوری کردم. من سبک های استایل خود را اضافه کردم و نتیجه چیزی شبیه به یک مینی فروم بود.

    فایل functions.php را باز کنید و در پایان قبل از علامت ?> کد زیر را اضافه کنید:

    //شمارش پیام های کاربر تابع bac_comment_count_per_user() ( جهانی $wpdb; $comment_count = $wpdb->get_var("SELECT COUNT(comment_ID) FROM ". $wpdb->comments." WHERE comment_author_email = "" . get_comment_author()_." "AND comment_approved = "1" AND comment_type NOT IN ("pingback", "trackback")"); if ($comment_count == 1) (echo " 1 Message"; ) other (echo " " . $comment_count . " Messages "; ) ) //عملکرد وضعیت کاربر get_author_class($comment_author_email,$user_id)($wpdb جهانی؛ $adminEmail = get_option("admin_email"); $author_count = count($wpdb->get_results("SELECT comment_M$count Froom_ID as author_ID wpdb->نظرات WHERE comment_author_email = "$comment_author_email" ")); if($comment_author_email ==$adminEmail) "Admin" را بازتاب می دهد؛ if($user_id!=0 && $comment_author_email !=$adminEmail) echo "U"; ($author_count>=1 && $author_count<50 && $comment_author_email !==$adminEmail) echo "Прохожий"; else if($author_count>=50 && $author_count<100 && $comment_author_email !==$adminEmail) echo "Новичок"; else if($author_count>=100 &&$author_count<250 && $comment_author_email !==$adminEmail) echo "Знающий"; else if($author_count>=250 &&$author_count<400 && $comment_author_email !==$adminEmail) echo "Опытный"; else if($author_count>=400 &&$author_count<800 && $comment_author_email !==$adminEmail) echo "Бывалый"; else if($author_count>=800 && $author_count<1200 && $comment_author_email !==$adminEmail) echo "СуперПупер"; else if($author_count>=1200 && $comment_author_email !==$adminEmail) echo "Professor"; ) //سفارشی کردن نظرات اگر (! function_exists("wordsmall_comment")) : تابع wordsmall_comment($comment, $args, $depth) ( جهانی $commentnumber; $GLOBALS["comment"] = $comment؛ سوئیچ ($comment- > comment_type) : case "pingback" : case "trackback" : ?>

  • id="li-comment-">
    %s"، get_comment_author_link()); ?> comment_parent)( $comment_parent_href = htmlspecialchars(get_comment_link($comment->comment_parent))؛ $comment_parent = get_comment($comment->comment_parent)؛ ?> @پاسخ برای:comment_author;?>
    comment_parent) $avatar_size = 60; echo get_avatar ($comment، $avatar_size); ?> comment_author_email,$comment->user_id)?>
    comment_approved == "0"): ?>
    ", ""); ?> __("پاسخ"، "wallpress")، "depth" => $depth، "max_depth" => $args["max_depth"]))); ?>

    حالا فایل comments.php را باز کنید، تابع فراخوانی نظرات را در آن پیدا کنید. چیزی شبیه این به نظر می رسد:

    به این تغییر دهید:

      "wordsmall_comment")); ?>

    مرحله نهایی. فایل style.css را باز کنید و در پایان استایل های زیر را اضافه کنید:

    My_commentlist( border-top:none; ) .my_commentlist .comment( padding:0 0 15px 0; border:none; ) .my_commentlist .pingback( padding:0 0 15px 0; border: none; list-style-type: هیچ‌کدام؛ padding: 0px؛ margin-left:0px;/*اگر به تورفتگی برای جعبه‌های درختی نیاز دارید، 15px*/ قرار دهید.my_commentlist.comment.children.comment( margin:15px 0 0 0 ؛ حاشیه: هیچ؛ بالشتک: 0؛ ) #کامنت ( پس‌زمینه: #fff; ) #کامنت‌ها .my_commentlist ( حاشیه: 10px 0؛ بالشتک: 0؛ فهرست به سبک: هیچ؛ پس‌زمینه: #ebf0f3؛ padding: 5px؛ ) # نظرات .my_commentlist .comment ( حاشیه: 0؛ بالشتک: 0 0 10 پیکسل؛ پس‌زمینه: #fff; ) #کامنت‌ها .my_commentlist .my_comment-author (نمایش: درون خطی؛ حاشیه سمت راست: 1px جامد #e0e0e0؛ عرض: 100px؛ شناور: چپ؛ حاشیه : 0 پیکسل 15 پیکسل 10 پیکسل 0؛ ) #comments .my_commentlist .commentmetadata ( float:left; ) #comments .my_commentlist p ( clear:none; color: #555; فونت: 14px arial; line-xight: 23p نظرات .my_commentlist .comment-content ( حاشیه سمت چپ: 116px; padding-right: 10px; ) #comments .my_commentlist .reply ( text-align:right; ) #comments .my_commentlist .reply a( پس زمینه: #f5f5f5؛ حاشیه: 1px جامد rgba(0, 0, 0, 0.06)؛ حاشیه حاشیه: 2px؛ رنگ : #515456؛ صفحه نمایش: بلوک درون خطی؛ اندازه قلم: 13 پیکسل؛ وزن قلم: معمولی؛ ارتفاع خط: 30 پیکسل؛ حاشیه سمت راست: 15 پیکسل؛ حداقل ارتفاع: 30 پیکسل؛ پد: 0 12 پیکسل؛ تراز نوشتاری: وسط ؛ text-decoration: هیچ؛ ) .my_commentlist .avatar( حاشیه: متوسط ​​هیچ؛ حاشیه: 50%؛ شناور: هیچ؛ حاشیه: 5px خودکار؛ بالشتک: 0px؛ نمایش: جدول؛ ) .my_commentlist .comment-header( ارتفاع: 30 پیکسل؛ پس‌زمینه: #DEE5EB؛ حاشیه پایین: 15 پیکسل؛ ) .my_commentlist cite.fn(رنگ: #444؛ فونت: پررنگ 13 پیکسل/30 پیکسل آریال؛ بالشتک چپ: 10 پیکسل؛ ) .my_commentate color: #_d 8ca0b5؛ فونت: معمولی 13px/30px آریال؛ شناور: سمت راست؛ padding-right: 15px؛ ) .my_commentlist .commentnumber (رنگ: #8ca0b5؛ شناور: سمت راست؛ فونت: مورب 13px/30px آریال:)15px .my_commentlist .comment-body ( سرریز: پنهان؛ موقعیت: نسبی. پس زمینه:#fff; ) .my_commentlist .rep-authorcom ( رنگ: #25394e؛ اندازه قلم: 13 پیکسل؛ ارتفاع خط: 30 پیکسل؛ ) 0 !مهم؛ رنگ: #999!مهم؛ نمایشگر: بلوک درون خطی؛ اندازه قلم: 11 پیکسل !مهم؛ وزن قلم: معمولی؛ ارتفاع خط: 30 پیکسل؛ حاشیه سمت راست: 5 پیکسل !مهم؛ حداقل ارتفاع: 30 پیکسل ؛ بالشتک: 0 !مهم؛ تراز نوشتاری: مرکز؛ تزئین نوشتار: هیچکدام؛ ) .com_per (حاشیه: متوسط ​​هیچ؛ رنگ: #666؛ نمایش: بلوک؛ اندازه قلم: 11 پیکسل؛ تراز نوشتار: مرکز؛ ) .vip1،.vip، .vp، .vip2، .vip3، .vip4، .vip5، .vip6، .vip7 (حاشیه: متوسط ​​هیچ؛ فونت: پررنگ 13 پیکسل آریال؛ نمایش: بلوک؛ تراز متن: مرکز؛ حاشیه- پایین: 5px؛ متن-تزیین: هیچکدام؛ .vp (رنگ: #e82e24;).vip1 (رنگ: #348be8;).vip2 (رنگ: #BE005E;).vip3 (رنگ: #2e517e;).vip4 ( رنگ: #658a18;).vip5 (رنگ: #00A56D;).vip6 (رنگ: #e35d28;).vip7 (رنگ: #99A400;).vip (رنگ: #4c5176؛ اندازه فونت: 11 پیکسل؛ حاشیه: 0 ;)

    کد به طور کامل کار می کند و خطا ایجاد نمی کند، اما ممکن است تغییرات جزئی در سبک های CSS لازم باشد.

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

    روش شماره 1

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

    $args = آرایه("comment_notes_before" => "

    "، "comment_field" => "

    "، "id_submit" => "comm_subm"، "label_submit" =>

    بنابراین، به این آرایه، باید یک پارامتر جدید با مقدار دلخواه اضافه کنید و تمام. در مورد ما، این است:

    "title_reply" => "نظر خود را بنویسید"

    همانطور که می فهمید - نظر خود را بگذارید، این نام جدید به جای - افزودن نظر است. می توانید چنین پارامتری را در پایان یا در ابتدای آرایه اضافه کنید. چیزی شبیه به این خواهد شد:

    $args = array("title_reply" => "نظر خود را بگذارید"، "comment_notes_before" => "

    فیلدهای زیر را پر کنید. ایمیل شما منتشر نخواهد شد. فیلدهای الزامی علامت گذاری شده اند *

    "، "comment_field" => "

    "، "id_submit" => "comm_subm"، "label_submit" => "ارسال"); comment_form($args);

    به ابتدا اضافه شد و اکنون، در صفحات پست خط نمایش داده می شود - نظر خود را بگذارید. این روش پیچیده نیست و به حداقل تلاش نیاز دارد، نکته اصلی این است که آرایه را به درستی تعریف کنید. اما گاهی پیش می‌آید که فایل comments.php داخل تم نیست یا آرایه‌ای در آن وجود ندارد و نمی‌دانید چگونه آن را به درستی اضافه کنید، سپس روش دوم به شما کمک می‌کند.

    روش شماره 2

    ماهیت روش دوم اضافه کردن یک تابع جدید است که جایگزین نام می شود. برای انجام این کار، در پوشه با موضوع فعال، باید فایل را پیدا کنید function.phpبا توابع سفارشی و در یک مکان مناسب، اگر این را نمی دانید، در پایان قبل از بسته شدن برچسب PHP - ?> ، اگر چنین چیزی وجود ندارد، فقط کد زیر را در آخر اضافه کنید:

    تابع wph_change_submit_label($defaults) ( $defaults["title_reply"] = "نظر خود را بگذارید"; return $defaults; ) add_filter("comment_form_defaults", "wph_change_submit_label");

    جایزه

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

    من همچنین می خواهم نزول کلمه Comments را پیشنهاد و توجه را جلب کنم. اگر فرم شما خط را نشان می دهد - 1 نظر منتشر شده یا نظرات: 10. می توانید از تابع موجود در مقاله استفاده کنید. اگر قبلاً از آن استفاده می کنید، توصیه می کنم در یک خط با یک آرایه:

    آرایه ("نظر"، "نظر"، "کامنت")

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

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

    همین، از توجه شما متشکرم. 🙂

    اخیراً در حال بررسی فایل‌های قالب وردپرس خود، یعنی قوانین قالب نمایش نظرات، بودم و به طور همزمان ساختار و عملکردهای مختلف آن را که مسئول نمایش نظرات در پست‌های وبلاگ هستند، درک می‌کردم. در نتیجه، من خروجی استاندارد را تغییر دادم، فایل comments.php خودم را ایجاد و اضافه کردم. تصمیم گرفتم نتیجه به دست آمده را در قالب یک مقاله ارائه کنم، زیرا این موضوع را به خوبی درک کردم و مطالب بسیار زیادی وجود داشت.

    امیدوارم این مقاله برای صاحبان وبلاگ وردپرس آشنا با HTML، CSS و PHP مفید واقع شود.

    ***

    در وردپرس، برای اتصال یک قالب نظر به یک پست یا صفحه، از تابع ()comments_template استفاده کنید که دو پارامتر دارد:

    • اولی مسیر فایل قالب است، به طور پیش فرض در پوشه با موضوع فعلی comments.php است.
    • دومی برای تفکیک نظرات بر اساس نوع (معمولی، ترک بک و پینگ بک)، به طور پیش فرض false استفاده می شود

    اجازه دهید ()comments_template را بعد از نمایش ورودی در قالب پست single.php یا page page.php وارد کنیم.

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

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

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

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

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

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

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

    داخل

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

    این فقط برای این مناسب خواهد بود:

    "

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

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

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

    هنوز نظری وجود ندارد، اما شما می توانید اولین نفر باشید

    نظرات خواننده در مورد مقاله ""

    بحث برای این صفحه بسته است

    خروجی نظرات

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

  • ، بنابراین باید یک لفاف اضافه شود
      با کلاس assignment.commentlist:

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

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

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

    1. id="li-comment-">
      "); ?> %s می گوید:")، get_comment_author_link()) ?>
      comment_approved == "0"): ?>
      $depth, "max_depth" => $args["max_depth"]))) ?>

      ساده ترین راه این است که این تابع را بردارید و آن را برای خود ویرایش کنید و سپس با نوشتن آن در فایل comments.php یا functions.php آن را به صورت سفارشی فراخوانی کنید.

      پس از نمایش لیستی از نظرات، می توانید ظاهر آنها را با استفاده از سبک های CSS تغییر دهید. برخی از پارامترهای wp_list_comments() در مدیریت WP، گزینه‌ها → تب بحث، به ویژه وجود نظرات درختی، مرتب‌سازی بر اساس تاریخ و غیره تکرار می‌شوند.

      فرم ارسال نظر

      برای افزودن فرم نظر، از تابع ()comment_form استفاده کنید. بیایید آن را زیر لیست نظرات اضافه کنیم:

      هنوز نظری وجود ندارد، اما شما می توانید اولین نفر باشید

      نظرات خواننده در مورد مقاله ""

      1. 64, "reply_text" => "Reply", "callback" => "my_comments"); wp_list_comments ($args)؛ ?>

      بحث برای این صفحه بسته است

      هنگامی که به این ترتیب فراخوانی شود، ()comment_form کد استاندارد را از فایل comment-template.php وردپرس بارگیری می کند. تابع دو پارامتر دارد:

      Comment_form ($args، $post_id);

      • $args - آرایه ای از تنظیمات خروجی فرم
      • $post_id - شناسه پستی که تابع روی آن اعمال می شود، به طور پیش فرض پست فعلی

      برای مثال، اجازه دهید فیلدهای فرم را در HTML5 اعتبارسنجی کنیم و نکات متنی را اضافه کنیم. بیایید یک آرایه $args ایجاد کنیم تا تنظیمات مورد نیاز را وارد کنیم:

      $args = array(); comment_form ($args);

      شما باید کلیدهای تنظیمات را در آرایه ثبت کنید:

      $args = array("fields" => application_filters("comment_form_default_fields", $fields));

      اکنون باید متغیر آرایه $fields را که شامل فیلدهای فرم است پر کنیم. ساده ترین راه این است که کد استاندارد وردپرس را از comment-template.php بگیرید و کمی آن را تغییر دهید:

      "

      " . ($req ?" *" : "") . "

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

      " . "

      ")؛ $args = آرایه ("fields" => application_filters ("comment_form_default_fields"، $fields)); comment_form($args)؛ ?>

      در اینجا مقادیر پارامترهای نویسنده، ایمیل و url به ترتیب کد html فیلدهای «Name»، «Mail» و «Site» هستند. این مقادیر باید ویرایش شوند.

      برای فیلدها باید ویژگی های زیر را اضافه کنیم:

      • مورد نیاز - فیلدها را اجباری می کند، آن را برای فیلدهای "نام" و "سایت" اضافه کنید
      • مکان نگهدار - یک راهنمای ابزار متنی را به فیلد اضافه می کند
      • pattern="(3,)" برای قسمت "Name" - نام را با حروف الفبای لاتین یا روسی و طول حداقل 3 کاراکتر نشان دهید.
      • type="email" برای فیلد "Mail" - این کار اعتبار سنجی ایمیل HTML5 را اضافه می کند
      • تکمیل خودکار - تکمیل خودکار فیلدها را فعال می کند
      • برای قسمت "سایت" تایپ کنید "url".

      به یاد داشته باشید که ویژگی های جدید HTML5 در مرورگرهای قدیمی کار نمی کنند. مرورگرهایی که انواع فیلدهای جدید را درک نمی کنند، آنها را به سادگی به صورت متن نمایش می دهند. .

      علاوه بر این، برای وبلاگم برچسب‌ها را اینجا و آنجا عوض کردم، کلاس‌هایی را برای استایل کردن اضافه کردم و در نتیجه کد زیر را برای آرایه فیلد $ دریافت کردم:

      "

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

      "); ?>

      فیلدهای ورود اطلاعات را تغییر داده ایم. حالا بیایید خود فرم نظر را ویرایش کنیم

      " ?>

      این کد استاندارد وردپرس است، من فقط آن را کمی تغییر دادم - یک راهنمایی متن اضافه کردم و یک کلاس اضافی برای یک ظاهر طراحی کردم.

      این همان چیزی است که من با استفاده از استایل CSS به آن دست یافتم:

      فرم نظر وردپرس با استفاده از ویژگی های HTML5

      خط پایین

      در نهایت، من کد comments.php حاصل را پست می‌کنم:

      خوانندگان مقاله ""

      • اولین نظر را بگذارید - نویسنده تلاش کرد
      1. id="li-comment-">
        "); ?> %s می نویسد:")، get_comment_author_link()) ?>
        comment_approved == "0"): ?>
        $depth, "max_depth" => $args["max_depth"]))) ?>
        "Reply", "callback" => "verstaka_comment"); wp_list_comments ($args)؛ ?>
      "

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

      ")؛ $args = آرایه("comment_notes_after" => ""، "comment_field" => "

      "، "label_submit" => "ارسال"، "fields" => application_filters("comment_form_default_fields", $fields)); comment_form($args)؛ ?>

      بحث برای این صفحه بسته است

      سوالات متداول درباره نظرات

      چگونه نظرات نویسنده و کاربر را برجسته کنیم؟

      گاهی اوقات تنظیم یک ظاهر جداگانه برای نظرات نویسنده بسیار راحت است؛ حتی پلاگین های خاصی برای این کار وجود دارد. با این حال، می‌توانید بدون هیچ پلاگینی این کار را انجام دهید - به سادگی با نوشتن سبک برای کلاس .bypostauthor در یک فایل css. به طور مشابه، می توانید استایل هایی را برای نظرات کاربران تنظیم کنید - .bypostuser:

      چگونه به نظرات درختی استایل دهیم؟

      برای فعال کردن نظرات درختی، باید به ادمین WP، تنظیمات → بحث → اجازه دادن به نظرات درختی بروید. اکنون کامنت‌های فرزند دارای ساختار درختی خواهند بود، می‌توان به آنها سبک‌های جداگانه داد، به عنوان مثال، تورفتگی. تنها کاری که باید انجام دهید این است که قوانین را در css برای لیست با class.children تنظیم کنید:

      Commentlist .children ( padding: 0 0 0 40px; /* padding سمت چپ برای نظرات کودکان */ )

      سبک هایی برای نظرات زوج و فرد

      وردپرس به طور پیش‌فرض به نظرات فرد یک کلاس زوج و به نظرات زوج یک کلاس از .odd می‌دهد. تنظیم سبک های خود از طریق این کلاس ها آسان است:

      Commentlist .even ( /* سبک برای نظرات فرد */ .commentlist .odd (/* سبک برای نظرات زوج */)

      چگونه نظرات را در یک پست جداگانه ببندیم؟

      بسیار آسان است - به صفحه نوشتن یک پست بروید، تنظیمات صفحه → گفتگوها، یک بلوک Discussions در زیر فیلد پست ظاهر می شود، علامت مورد اجازه دادن به نظرات را بردارید.

      • هنگام ایجاد قالب نظرات خود، می توانید از فایل های comments.php از قالب های استاندارد و دیگر قالب های وردپرس پولی و رایگان استفاده کنید.
      • یک جایگزین برای نظرات استاندارد، افزونه های فرم نظرات شخص ثالث است، برای مثال DISQUS محبوب
      • ویرایش کد مستقیماً در خود فایل comment-template.php کاملاً امکان پذیر است، اما اگر وردپرس به روز شود، همه کدها رونویسی می شوند - باید دوباره ویرایش کنید.
      • به یاد داشته باشید، هیچ الگوی نظر کاملی وجود ندارد.

      به پروژه کمک کنید

      65 رای، میانگین: 4,46 از 5)

      مدتی است که درباره وردپرس چیزی ننوشتم. بنابراین، امروز با شما به اشتراک می گذارم که چگونه می توانید به صورت دستی فرم نظر در وردپرس را تغییر دهید. من فکر می کنم که این دانش می تواند برای هر وبلاگ نویس تازه کار مفید باشد، زیرا فرم نظر گاهی تنها وسیله ارتباط بین بازدیدکنندگان و نویسنده است. نگذر:)

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


      همانطور که می بینیم، خط "ایمیل شما منتشر نخواهد شد" حذف شده است. فیلدهای الزامی با علامت *". نیازی نیست بازدیدکنندگان را احمق های بی مغز در نظر بگیرید. آنها قبلاً درک می کنند که چه چیزی باید پر شود و چه چیزی نه. نام فیلدها را هم داخل خود فیلدها مخفی کردم. این یادداشت های پررنگ برای چیست؟ اکثر بازدیدکنندگان، حتی بدون نام فیلدها، می توانند "با چشم" تعیین کنند که کدام یک به چه چیزی تعلق دارد. اما نکات داخلی همچنان باید وجود داشته باشد. خوب، کپشن فیلد نظر جسارت غیرضروری خود را از دست داده است. به نظر من خیلی بهتر و آزادتر شده است.

      پس بیایید همه چیز را به سرعت تغییر دهیم! ;)
      به پوشه سایت خود می رویم و فایل wp-includes/comment-template.php را در آن پیدا می کنیم. ما به دنبال خط 1522 در آن هستیم، بله، همین است. اینکه من خودم چطور آن را پیدا کردم یک داستان کامل است، کمی بعد در مورد آن به شما خواهم گفت :)
      بنابراین، فایل را برای ویرایش باز کنید و به خط 1522 بروید. اکنون آن و موارد زیر (تا 1529) تقریباً به این صورت است:

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

      " . "" . ($req ?" *" : "") . "

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

      " . "

      ",);

      چقدر همه چیز ساده و واضح است. فقط کافی است تمام مقدار اضافی را برش دهید و کمی اضافه کنید. پارامتر اضافه خواهد شد

      Placeholder="متن راهنما" !}

      این گزینه به شما امکان می دهد هر متنی را در داخل فیلدها نمایش دهید. ما از آن برای نمایش نکات استفاده می کنیم:

      "

      " "

      " "

      "

      ما خطوط را حذف می کنیم:

      "

      " . "" . ($req ?" *" : "") "

      "

      آنها مسئول نمایش زیرنویس ها در بالای فیلدها هستند.
      در نتیجه تمام این دستکاری ها، موارد زیر را دریافت می کنیم:

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

      "، "email" => "

      "، "url" => "

      ",);

      تنها چیزی که باقی می ماند حذف این نکته احمقانه است که «ایمیل شما منتشر نخواهد شد. فیلدهای الزامی با علامت *". برای انجام این کار، خط را حذف کنید (تقریباً 1537):

      "comment_notes_before" => "

      " . __("آدرس ایمیل شما منتشر نخواهد شد.") . ($req ? $required_text: "") ."

      ",

      به نظر می رسد همه چیز همین است، اکنون فرم ما کمی جذاب تر شده است. امیدوارم این اطلاعات برای کسی مفید باشد :)

      مشترک شوید، نظر دهید، خوشحال می شوم نظرات کافی را دریافت کنم. شاید من خودم چیزی را نمی دانم و می توان آن را به روش دیگری انجام داد، نظرات خود را به اشتراک بگذارید.

      سلام!

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

      اجازه دهید با این واقعیت شروع کنم که هر قالب وردپرس (موضوع) دارای یک فایل است comments.phpمسیر کامل آن از دایرکتوری ریشه به صورت زیر است: /wp-content/themes/template_folder/comments.php

      دقیقا comments.phpبه طور کلی مسئول بلوک نظرات در یک موضوع خاص وردپرس است.

      آنچه اغلب در comments.php وجود دارد:

      - حفاظت از رمز عبور نظرات را بررسی کنید

      - بررسی اینکه آیا نظرات در مورد مقاله مجاز هستند یا خیر

      - بررسی نظرات و نمایش متن مربوطه ("بدون نظر..." یا "N نظر باقی مانده")

      فراخوانی تابع خروجی نظر - wp_list_comments()

      - خروجی ناوبری (صفحه بندی) هنگام ارسال نظرات در چندین صفحه

      – نمایش فرمی برای گذاشتن نظر در مورد مقاله

      در اینجا واضح است که می توانید کلاس های خود را تعریف کنید یا ویژگی ها را در آن تغییر دهید style.cssبرای کلاس های موجود بنابراین می توانید ظاهر فرم را برای گذاشتن نظرات و متن ها قبل از لیست نظرات و بعد از این لیست یا فرم تغییر دهید. ولی سبک های خروجی خود نظرات را نمی توان در comments.php تغییر داد.

      وقتی محتویات فایل را لیست کردم comments.php، سپس به طور خاص تأکید کرد که در comments.phpفقط یک فراخوانی با عملکرد برای نمایش نظرات وجود دارد wp_list_comments()، اما نه خود نتیجه. آن ها V comments.phpشما (حداقل در آخرین نسخه های وردپرس و با رویکرد درست در ساخت قالب) پیدا نمی کنید: نمایش نام نویسنده پیام و پیوند به وب سایت او، نمایش آواتار نویسنده، نمایش تاریخ و زمان نظر، خود نظر و پیوند "پاسخ".

      چگونه استایل ها را در لیست نظرات تغییر دهیم؟

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

      تابع wp_list_comments() را می توان بدون تماس (Callback یک تابع پاسخ به تماس است) و با یک callback فراخوانی کرد.

      1. با wp_list_comments بدون تماس تماس بگیرید:

      آن ها در پارامترهای تابع (آنچه در داخل پرانتز بعد از نام وجود دارد) هیچ پارامتری به نام «بازخوانی» وجود ندارد.

      اگر در comment.phpپس الگوی شما چنین وضعیتی است این بدان معناست که این تم عملکرد (کاربر) خود را برای نمایش نظرات نداردو برای این کار از یک قالب استاندارد (قالب هسته وردپرس) استفاده شده است. در فایل قرار دارد. و از آن زمان در این صورت، تا زمانی که به گزینه دوم نرویم، نمی‌توانیم سبک‌های نمایش نظرات را تغییر دهیم.

      2. با wp_list_comments تماس بگیرید:

      "type=comment&avatar_size=48&callback=custom_comment") ; ?>

      callback=comment_customنشان میدهد که برای نمایش نظرات ما یک تابع سفارشی داریم سفارشی_نظر ، کد آن را به طور تقریبی به عنوان پارامتری برای اجرا به تابع استاندارد منتقل می کنیم. wp_list_comments. اما ما دیگر به جنبه فنی این موضوع علاقه نداریم، بلکه به حضور در قالب تابع خودش برای نمایش نظرات علاقه مندیم. کد این تابع در قرار دارد.

      دقیقا در این تابع سفارشی سفارشی_نظرو کدی که مسئول ظاهر یک نظر فردی است، و در نتیجه تمام نظرات به عنوان یک کل، قرار دارد.

      کد تابع سفارشی بصری است. معمولاً از ویژگی های استاندارد وردپرس زیر استفاده می کند:

      get_comment_author_link()- یک پیوند html به وب سایت نویسنده نظر فعلی دریافت می کند.

      get_comment_date()- تاریخ نظر را دریافت می کند.

      get_comment_time()- زمان نظر را دریافت می کند.

      comment_text()- متن نظر را نمایش می دهد.

      می‌توانید قطعه‌هایی را با این توابع در کد پیدا کنید و با قاب‌بندی عناصر خاص در div یا span و اختصاص کلاس‌های سبک خاص، ظاهر آن‌ها را تغییر دهید.

      به عنوان مثال، در کد تابع سفارشی، یک قطعه از خروجی آواتار:

      < div class = "comment-author" >

      < / div >

      اکنون در آن باقی مانده است style.cssویژگی های مورد نظر را به کلاس تنظیم کنید نظر نویسنده. در یکی از مقالات بعدی به نمونه های خاص تغییر سبک با جزئیات بیشتری نگاه خواهم کرد.

      اکنون ممکن است تعجب کنید: " اگر الگوی من تابع نظر سفارشی نداشته باشد چه؟

      پاسخ: باید آن را ایجاد کنید.

      ساده ترین گزینه کپی کردن کد یک تابع استاندارد وردپرس است اظهار نظر().

      دستورالعمل ایجاد یک تابع سفارشی برای نمایش نظرات:

      1. فایل را باز کنید /wp-includes/comment-template.phpو تابع را در آن پیدا کنید اظهار نظر().

      اینجا شروع توصیف اوست

      /** * @since 3.6 * @access محافظت شده * * @param شی $comment نظر برای نمایش. * @param int $depth عمق نظر. * آرایه param @$args آرگ اختیاری. */ نظر تابع محافظت شده ($comment، $depth، $args) (

      * @از 3.6

      * دسترسی @ محافظت شده است

      * @param شی $comment نظر برای نمایش.

      * @param int $depth عمق نظر.

      * آرایه param @$args آرگ اختیاری.

      نظر تابع محافظت شده ($comment، $depth، $args) (

      2. کل بدنه عملکرد را کپی کنید اظهار نظر().

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