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

در این پست، یکی از ساده‌ترین (اما از نظر ذهنی یکی از ترجیح داده‌شده‌ترین) راه‌ها برای افزودن نظرات به یک سایت - یک مثال ساده برای تازه‌کارها + گزینه‌هایی برای وبمسترهای پیشرفته‌تر را خواهید آموخت.

در واقع، اگر مجموعه ای از راه حل های آماده از خدمات شخص ثالث وجود دارد، چرا چرخ را دوباره اختراع کنید و یک سری کد بنویسید که هنوز در آینده باید پشتیبانی شود، تعمیر شود و غیره در شبکه های اجتماعی + دیسک)?

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

مزایای راه حل های شخص ثالث:

  • سهولت اجرا.
  • محافظت از هرزنامه "خارج از جعبه" (در راه حل من، من باید این را علاوه بر آن پیاده کنم، بنابراین، از نظر تئوری، مربوط به پاراگراف قبلی است).
  • کمتر مستعد اشکالات، اشکالات و غیره است، زیرا راه حل های شخص ثالث توسط میلیون ها کاربر آزمایش شده است (دوباره مربوط به اولی است: همچنین می توانید همه چیز را بدون اشکال بنویسید، اما اشکال زدایی به زمان بیشتری نیاز دارد).
  • به عنوان یک قاعده، سرویس‌ها یک پنل مدیریت آماده، آمار، اعلان‌ها برای ادمین‌ها، گاهی اوقات تعدیل، چندین ادمین، پیش نظارت و غیره را ارائه می‌دهند، که ممکن است ماه‌ها، اگر نگوییم سال‌ها، برای یک وب‌مستر، به‌ویژه یک مبتدی، طول بکشد. پیاده سازی.
  • کاربر نیازی به ثبت نام، نام خود و غیره ندارد - فرض بر این است که او قبلاً یک حساب کاربری در شبکه اجتماعی محبوب دارد.
  • به احتمال زیاد، با توجه به اینکه اجتماعی، بار زیادی را تحمل خواهد کرد. سکوها در ابتدا برای بارهای سنگین طراحی شده بودند.

ایرادات:

  • لاغر یا غیبت کاملفرصت هایی برای تغییر ظاهربلوک نظرات
  • نمایه سازی در موتورهای جستجو

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

اما تئوری کافی است، بیایید به سراغ عمل برویم.

1. ساده ترین گزینه- اضافه کردن نظرات با استفاده از برخی از شبکه های اجتماعی انتخاب شده.

به عنوان مثال vk. ما به مستندات نگاه می کنیم. کد ارائه شده را کپی کنید و آن را در صفحه اضافه کنید (تکه های کد با مرجع از داک ها گرفته می شوند، ممکن است در آینده تغییر کنند، بنابراین همیشه از سایت مستندات کپی کنید. در اینجا فقط یک مثال ممکن است):

1) اضافه کردن به :

2) در جایی که می خواهیم ویجت نظرات را ببینیم (مثلاً بعد از یادداشت، اگر در مورد وبلاگ صحبت می کنیم) اضافه کنید:

2. ویجت ها را از چندین سرویس اضافه کنید. به عنوان مثال، مانند این منبع. تغییر زبانه ها:


ما به نشانه گذاری (برای کار صحیح، بوت استرپ توییتر باید متصل باشد!) را در محلی که می خواهید نمایش دهید اضافه می کنیم. ویجت نظرات:

اما این گزینه بهترین نیست، اگرچه ساده ترین است. مشکل این است که با این رویکرد، همه ویجت ها هنگام بارگیری صفحه، بدون توجه به اینکه کاربر به آنها نیاز دارد یا نه، مقداردهی اولیه می شوند.

با پیاده سازی می توان از این امر جلوگیری کرد تنظیم اولیه تنبل ویجت های نظر. ابتدا کل کد و سپس توضیح:

(function(global, $) ( "استفاده از سخت"؛ $(function() ( var $tabToggler، initComments، مقدار دهی اولیه؛ مقدار دهی اولیه = ( "#vk-comments": false، "#disqus_thread": false )؛ initComments = تابع (نوع) ( var talkUserName, disqus_config, pageUrl; if (initialized) ( return; ) pageUrl = "page_url"؛ سوئیچ (نوع) ( مورد "#disqus_thread": // باید این پارامترها را با استفاده از پلتفرم خود تنظیم کنید way talkUserName = "discussUserName"؛ disqus_config = function() ( this.page.url = pageUrl; return this.page.identifier = "page_identifier"; )؛ (function() (var d, s; ​​d = document; s = d.createElement("script")؛ s.src = "//" +disqusUserName + ".disqus.com/embed.js"؛ s.setAttribute("data-timestamp", +new Date()); بازگشت ( d.head || d.body).appendChild(s); ))(); break; case "#vk-comments": VK.Widgets.Comments("vk-comments", (حد: 5، پیوست : " *"، pageUrl: pageUrl ))؛ شکست؛ پیش‌فرض: بازگشت؛ ) مقدار دهی اولیه = درست؛ ؛ $tabToggler = $(".comments-wrapper a" ) $tabToggler.on("shown.bs.tab"، تابع(e) ( initComments($(e.target).attr("href")); )); initComments($tabToggler.closest(."active").find("a").attr("href")); ))؛ ))(پنجره، جی کوئری)؛

به متغیرهایی که باید مقدار آنها را با استفاده از روش های ارائه شده توسط پلتفرم خود تهیه کنید توجه کنید.

ابتدا یک نگاشت نوع ایجاد می کنیم ویجت های نظر، متغیر اولیه شده است. بعد، تابع initComments (نوع)اجازه می دهد مقداردهی اولیه ویجت نظر، و اگر قبلاً مقداردهی اولیه شده باشد کاری انجام نمی دهد.

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

اسکریپت آماده روشن و قهوه اسکریپت در اصل. نمونه کار در زیر آمده است (نمونه های کد از این سایت گرفته شده است)

سلام به همه! امروز می‌خواهم به شما بگویم که چگونه می‌توانید خوانندگان وبلاگ خود را در مورد وبلاگ خود نظر بگذارند. البته، من نمی خواهم بگویم که وبلاگ من به معنای واقعی کلمه مملو از نظرات است، اما هنوز هم چیزی وجود دارد.

کمی در مورد خودتان

با ایجاد اولین وبلاگ، وبلاگ دوم (این یکی -) از کمبود نظر در مورد آنها رنج می بردم. بیایید نگاهی به این وبلاگ بیندازیم. به نظر من خوب نوشت، مفید، اما هنوز هیچ نظری و نه. یادمه بعد از اینکه نوشتنم تموم شد فکر کردم همه جور تشکر میشه و غیره میگن خیلی وبلاگ جدید درست شد ولی بازم نظری نبود...

چندین هفته گذشت، اما هنوز تعداد کمی از مردم پاسخ دادند، چند نفر بودند که در درس های من وبلاگ ایجاد کردند. اما من سرسختانه ادامه دادم، ادامه دادم و به نوشتن ادامه دادم، زیرا آن را دوست دارم، وبلاگ‌ها، خوانندگانم را دوست دارم، درس‌های جدیدی می‌نویسم و ​​فقط در توییتر، vkontakte، icq، فیس‌بوک، ایمیل، اسکایپ و غیره با آنها ارتباط برقرار می‌کنم.

اما هنوز، چگونه می توان خواننده را وادار به گذاشتن نظر کرد؟

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

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

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

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

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

چگونه یک خواننده را وادار کنیم که در یک وبلاگ نظر بگذارد

  1. شما باید درک کنید که چه نوع خواننده ای دارید و به آن اعتماد کنید. برای انجام این کار، می توانید یک صفحه "درباره نویسنده" ایجاد کنید، عکس خود را پست کنید، به مخاطبین خود در icq، اسکایپ، توییتر، Vkontakte، فیس بوک و غیره پیوند دهید تا خوانندگان شما واقعاً بدانند که شما یک فرد زنده هستید. ، همان خود خواننده.
  2. گاهی اوقات می توانید پست هایی با ماهیت شخصی منتشر کنید، مثلاً تابستان خود را چگونه گذرانده اید و غیره. چنین مقالاتی نویسنده و خوانندگان وبلاگ را "همراه می کند". اما اغراق نکنید. شما نیازی به انحراف زیاد از موضوع وبلاگ خود ندارید، در نتیجه مخاطب هدف را بیگانه خواهید کرد.
  3. در پایان مقاله از خوانندگان بخواهید نظر خود را بنویسند. این یک راه ناکارآمد است. پرسیدن سوال در انتهای پست موثرتر است.
  4. خود مقاله معنای کامل را آشکار نمی کند. بگذارید این احساس باقی بماند که ظاهرا چیزهای طبیعی را از دست داده اید، خواننده می خواهد خودش مقاله شما را تکمیل کند.
  5. بحث جمع کنید به عنوان مثال، پست هایی با ماهیت زیر نظرات زیادی را به دست می آورند: «Apple VS Nokia»، «WordPress یا Joomla» و غیره. طرفداران یک طرف خودشان را ثابت خواهند کرد و طرف مقابل خلاف آن را ثابت خواهند کرد.
  6. یک کپچا (محافظت از هرزنامه برای گذاشتن نظرات) تا حد امکان آسان کنید. البته، در حالت ایده آل، غیبت کامل کپچا وجود دارد، اما ربات های هرزنامه "مغز و وبلاگ را از بین می برند" :).
    به عنوان مثال، من هرگز نظراتی را در جایی که از کد کپچا در تصاویر استفاده می‌شود، نمی‌گذارم، اگر طولانی باشد، پس تمام است، فقط پایان دنیاست. من خیلی تنبلم، وقت کافی برای بازنویسی این مجموعه حروف ندارم.
    بنابراین، برای محافظت در برابر هرزنامه‌ها، افزونه‌هایی مانند پلاگین‌هایی را نصب کنید که فقط باید علامت ربات نیستید را علامت بزنید یا یک مشکل ساده ریاضی را حل کنید. به هر حال، من در مورد آخرین افزونه به طور مفصل در .
  7. قبل از نظر دادن، به جای متن استاندارد "متاسفانه، هنوز نظری وجود ندارد"، چیزی "اجباری" را برای گذاشتن نظرات قرار دهید، مانند "نظر خود را بگذارید، نظر شما برای ما مهم است" (اولین چیزی که به ذهن رسید 🙂) . این متن در فایل comments.php قابل تغییر است.
  8. نظرات خود را در وبلاگ های دیگر بنویسید. در ابتدا، این کمک زیادی می کند. اما پس از آن زمان کافی برای این نیز وجود ندارد ... شما باید یک نظر معنی دار و در مورد موضوع بگذارید. من بلافاصله نظر خود را در seogramota.ru به یاد آوردم که به لطف آن تعداد زیادی خوانندگان جدید، مشترکین و یک لینک رایگان از وبلاگ با 110 Tits و PR 2 به دست آوردم (تیک و pr چیست و چگونه آنها را بالا ببرم به زودی خواهم گفت. در یکی از درس هایم بگو).
    نظرات خود را با آواتار منحصر به فرد خود بنویسید (لازم نیست این عکس شما باشد). برای داشتن یک آواتار هنگام گذاشتن نظر، باید ایمیل خود را (که در هنگام نظر دادن نشان داده می شود) به تصویر "ضمیمه" کنید. برای انجام این کار، شما فقط باید در gravatar.com ثبت نام کنید، و سپس، چه کاری انجام دهید، مطمئن هستم که خودتان همه چیز را خواهید فهمید.
  9. حذف امکان نظر دادن فقط برای کاربران ثبت نام شده! فقط واحدها فقط برای گذاشتن نظر ثبت نام می کنند.
    برای انجام این کار، به ناحیه مدیریت وردپرس –> تنظیمات –> بحثو تیک کادر را بردارید "کاربران باید ثبت نام کرده و مجاز به اظهار نظر باشند":


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

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

روش شماره 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

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

تابع wph_change_submit_label($defaults) ( $defaults["title_reply"] = "بازخورد خود را ارسال کنید"; return $defaults; ) add_filter("comment_form_defaults", "wph_change_submit_label");

جایزه

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

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

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

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

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

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

سلام!

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

برای شروع، هر قالب وردپرس (موضوع) دارای یک فایل است 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()، اما نه خود خروجی. آن ها که در comments.phpپیدا نخواهید کرد (حداقل در آخرین نسخه هاوردپرس و در رویکرد درستبه توسعه قالب ها): نمایش نام نویسنده پیام و پیوند به سایت او، نمایش عکس پروفایل نویسنده، نمایش تاریخ و ساعت نظر، خود نظر و لینک "پاسخ".

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

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

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

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 شی $ نظر دادن نظربرای نمایش دادن * @param int $depth عمق نظر. * آرایه param @$args آرگ اختیاری. */ نظر تابع محافظت شده ($comment، $depth، $args) (

* @از 3.6

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

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

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

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

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

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

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

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

مرحله 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 2px rgba(204,204,204,0.8)؛ -moz-box-shadow: 1px 2px 2px rgba(204,204,204,0.8)؛ 1px 2px 2px rgba(204,204,204,0.8)؛ 0.8)؛ رنگ: #555؛ نمایشگر: بلوک درون خطی؛ اندازه قلم: 13 پیکسل؛ سمت چپ: 4 پیکسل؛ حداقل عرض: 60 پیکسل؛ بالشتک: 4 پیکسل 10 پیکسل؛ موقعیت: نسبی؛ بالا: 40 پیکسل؛ شاخص z: 1؛ )

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

اکنون سن به عنوان ذخیره می شود اطلاعات تکمیلی. شما باید از یک قلاب در "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);

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

comment_ID، "سن"، true); ?>

مرحله 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; ?>

  • id="li-comment-">

    comment_ID، "سن"، true); ?>

    __("پاسخ ↓"، "twentyeleven")، "depth" => $depth، "max_depth" => $args["max_depth"]))); ?>
  • رنگ پس زمینه را به این صورت تغییر دهید:

    Commentlist > li.comment ( پس‌زمینه: #99ccff؛ حاشیه: 3px جامد #ddd؛ -moz-border-radius: 3px؛ border-radius: 3px؛ حاشیه: 0 0 1.625em؛ padding: 1.625em؛ موقعیت: نسبی؛ )