دوره مجازی قالب وردپرس (جلسه 47):پیاده سازی دیدگاه ها در قالب وردپرس - قسمت دوم



visibility  
mode_comment   ۳۸

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

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

  • استایل دهی و ویرایش لیست نظرات
  • استایل دهی و ویرایش فرم ارسال نظر
info توجه

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

ثبت نام در آموزش طراحی قالب وردپرس

comment دیدگاه کاربران
Sajjad Sohrabi replyپاسخ

سلام مهندس خسته نباشید
اگه تو قسمت نظرات مثل خود سون لرن شکلک ها رو قرار میدادین و یه قسمتی که بعد ثبت نظر 10 دقیقه فرصت برای ویرایش نظر درست مثل خود وب سایت شما قرار میدادین خیلی خوب میشد.

لقمان آوند

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

Sevda Motalebi replyپاسخ

ببخشید سوال من مربوط به جلسه دوم هست 😕
چرا آیکن ایکس زمپ من گزینه ادمین غیر فعال هست و مثل شما وقتی استارت زدم بعدش پنجره ای باز نشد؟!ممنون میشم ج بدین

کیوان علی محمدی

سلام درست نصب کردین xampp رو؟

فراز توانا replyپاسخ

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

کیوان علی محمدی

سلام وقتی صفحه سفید نشون داده میشه یعنی خطایی رخ داده . بهتره از تنظیمات فایل wp-config.php مقدار DEBUG رو برابر true قرار بدیم تا خطاها نشون داده بشه.

فراز توانا replyپاسخ

خیلی ممنون از راهنمائیتون

فراز توانا replyپاسخ

من چک کردم مشکل از بخش شرتکد ها بود میشه این کدارو چک کنین ببینین کجا اشتباه کردم که مشکل کوکی رو میده؟
http://uplod.ir/a1u6pm9sn33x/shortcode.txt.htm

کیوان علی محمدی

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

حمید حسینی تبار replyپاسخ

اگر قسمت دیدگاههای یک پست زیاد بودن و بخوام اول مطلب (single.php) رو نشون بده و بعد بصورت اجکسی دیدگاهها رو بیاره تا اینطور کاربرپسندتر بشه و بهتر بشه ، باید چکاری انجام بدهم ؟
یعنی خود مطلب رو اول لود کنه و دیدگاهها رو بصورت اجکس لود کنه .

کیوان علی محمدی

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

حمید حسینی تبار replyپاسخ

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

کیوان علی محمدی

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

حمید replyپاسخ

سلام
چرا وقتی با ادمین لاگین میشم texrare برای ارسال دیدگاه نمایش داده نمی شه؟

کیوان علی محمدی

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

حمید replyپاسخ

چطوری فیلد texrare رو پایین تر از همه فیلدها و بالاتر از captcha قرار بدم؟؟

کیوان علی محمدی

سلام این کد رو تست کنید.

function sl_move_comment_field_to_bottom( $fields ) {
$comment_field = $fields['comment'];
unset( $fields['comment'] );
$fields['comment'] = $comment_field;
return $fields;
}

add_filter( 'comment_form_fields', 'sl_move_comment_field_to_bottom' );

حمید

جناب محمدی ممنون از پاسختون ولی من میخوام کد captcha پایین فیلد texrare باشه ممنون میشم در این مورد راهنمایی بفرمایید

کیوان علی محمدی

برای کد کپچا از پلاگین استفاده کردین؟

حمید

بله از پلاگین استفاده کردم

کیوان علی محمدی

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

محمدرضا replyپاسخ

سلام وقتون بخیر
عرض ادب و نهایت احترام دارم …
ببخشید من یه سوال داشتم ممنون میشم منو راهنمایی کنید !
من بخش کامنت های پروژه م رو به صورت ایجکس پیاده سازی کردم فقط مشکلم اینه میخوام اون قسمت ” پاسخ دادن ” که فرم کامنت نمایش داده میشه بدون رفرش صفحه نمایش داده بشه ؟ دقیق مثل همین سایت سون لرن که وقتی میخوای پاسخ یک کامنتی بدی فرم به صورت realtime نمایش داده میشه همچنین قسمت همون ضربه در و یا لغو پاسخ .. ممنون میشم راهنمایی کنید باید چیکار کنم تا بتونم همچین امکانی رو برای سیستم کامنت قالبم پیاده سازی کنم یا اینکه بگید به این روش یا تیکنیک چی میگن و باید چه عبارتی رو جست و جو کنم تا خودم تحقیق کنم به جوابم برسم و بتونم نمونه کدها رو ببینم و بهتر درک کنم ماجرا را رو
ممنون از اینکه همیشه همراه ما کاربرا هسین …

کیوان علی محمدی

سلام مجدد. کافیه script به نام comment-reply رو با wp_enqueue_script رد صفحه single بارگذاری کنید.

محمدرضا replyپاسخ

سلام مجدد من با سرچ به جوابم رسیدم این کد ها رو باید به Function.php‌ اضافه کنیم .
این کد ها رو قرار میدم شاید دوستان هم دوره ای هم همین مشکل رو داشته باشن تا بهشون کمکی بشه ..

کیوان علی محمدی

ممنون از شما.

علی خسروی replyپاسخ

سلام استاد خسته نباشید من قسمت دیدگاه ها رو بدون هیچ مشکلی راه اندازی کردم
ولی وقتی تو فایل single بالای کد فراخوانی دیدگاه ها فایل post-view رو لود میکنم کامنت ها درست عمل نمی کنه و نظرات رو نمایش نمیده
کد های فایل post-view :

<div class="container section-top-footer marginTop" id="post-view">
    <div class="titleItem">
        <i class="fa fa-newspaper-o" aria-hidden="true"></i><h2> پربازدید ترین مطالب</h2>
    </div>
    <div class="rowItem">
        <?php
        $most_view_args = array(
            ‘post_type’ => ‘post’,
            ‘cat’ => ‘4,5’,
            ‘meta_key’ => ‘views’,
            ‘orderby’ => ‘meta_value_num’,
            ‘order’ => ‘DESC’,
            ‘posts_per_page’ => ‘8’
        );
        $most_view_posts = new WP_Query($most_view_args);
        if ($most_view_posts->have_posts()) :?>
            <?php while ($most_view_posts->have_posts()):
                $most_view_posts->the_post(); ?>
                <div class="item-shop">
                    <div class="item-shop2">
                        <div class="boxImg">
                            <a href="<?php the_permalink(); ?>">
                                <?php the_post_thumbnail(array(180,180)); ?>
                            </a>
                        </div>
                        <div class="boxTitle">
                            <a href="<?php the_permalink(); ?>">
                                <h2><?php if (strlen("the_title()") > 35) { ?>
                                                <?php the_title(); ?>
                                            <?php } if (strlen("the_title()") < 35) { ?>
                                                <?php echo substr(get_the_title(), 0, 35); ?>
                                            <?php } ?> <?php echo get_post_view(get_the_ID()); ?> </h2>
                            </a>
                        </div>
                    </div>
                </div>
            <?php endwhile; ?>
        <?php endif; ?>
    </div>
</div>
کیوان علی محمدی

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

علی خسروی

سلام استاد اون قسمت طول عنوان مطلب رو درست کردم ولی هنوز وقتی این فایل post-view رو تو single لود می کنم کامنت هام نمایش داده نمیشه و با این که دیدگاه برای اون پست وجود داره می زنه بدون دیدگاه
وقتی این فایل رو از فایل سینگل حذف می کنم یا بعد از کد های کامنت قرارش می دم مشکل برطرف میشه
این کد های قسمت پایین سینگل هستش وقتی post-view رو فراخوانی می کنم کامنت ها از کار می افته :((( :((( :(((

<?php endwhile; ?>
<?php else: ?>
    <!– No posts found –>
<?php endif; ?>
    </div>
        <?php get_template_part(‘partials/post-view’); ?>
    <!————————————-comments ————————–>
    <div class="comments-block container">
        <?php comments_template(null,true ); ?>
    </div>
</div>
علی خسروی replyپاسخ

استاد یه سوال دیگه البته با عرض معذرت
من تو سایتم یه بخشی رو برای بعضی صفحات قرار دادم به عنوان مطالب پر بازدید یا جدیدترین مطالب و برای اون بخش ها نمی خوام title هر پست به صورت کامل نمایش داده بشه برای همین از این کد استفاده می کنم :
اما مشکلش اینه که کلمات رو قطع می کنه و خروجی قابل قبولی نداره و حتی بعضا علامت های نامتعارف به آخر عنوان اضافه می کنه
استاد کد بهتری برای این کار هست یا پلاگینی برای این مورد هست ؟
با تشکر

<div class="boxTitle">
                            <a href="<?php the_permalink(); ?>">
                                <h2><?php if (strlen("the_title()") > 35) { ?>
                                                <?php the_title(); ?>
                                            <?php } if (strlen("the_title()") < 35) { ?>
                                                <?php echo substr(get_the_title(), 0, 35); ?>
                                            <?php } ?> <?php echo get_post_view(get_the_ID()); ?> </h2>
                            </a>
                        </div>
کیوان علی محمدی

سلام دوست عزیز. برای این کار می تونید از تابع wp_trim_words وردپرس استفاده کنید.

علی خسروی replyپاسخ

سلام استاد اون قسمت طول عنوان مطلب رو درست کردم ولی هنوز وقتی این فایل post-view رو تو single لود می کنم کامنت هام نمایش داده نمیشه و با این که دیدگاه برای اون پست وجود داره می زنه بدون دیدگاه
وقتی این فایل رو از فایل سینگل حذف می کنم یا بعد از کد های کامنت قرارش می دم مشکل برطرف میشه
این کد های قسمت پایین سینگل هستش وقتی post-view رو فراخوانی می کنم کامنت ها از کار می افته :((( :((( :(((

<?php endwhile; ?>
<?php else: ?>
    <!– No posts found –>
<?php endif; ?>
    </div>
        <?php get_template_part(‘partials/post-view’); ?>
    <!————————————-comments ————————–>
    <div class="comments-block container">
        <?php comments_template(null,true ); ?>
    </div>
</div>

//post-view codes

<div class="container section-top-footer marginTop" id="post-view">
    <div class="titleItem">
        <i class="fa fa-newspaper-o" aria-hidden="true"></i><h2> این پربازدید ترین مطالب</h2>
    </div>
    <div class="rowItem">
        <?php
        $most_view_args = array(
            ‘post_type’ => ‘post’,
            ‘cat’ => ‘4,5’,
            ‘meta_key’ => ‘views’,
            ‘orderby’ => ‘meta_value_num’,
            ‘order’ => ‘DESC’,
            ‘posts_per_page’ => ‘8’
        );
        $most_view_posts = new WP_Query($most_view_args);
        if ($most_view_posts->have_posts()) :?>
            <?php while ($most_view_posts->have_posts()):
                $most_view_posts->the_post(); ?>
                <div class="item-shop">
                    <div class="item-shop2">
                        <div class="boxImg">
                            <a href="<?php the_permalink(); ?>">
                                <?php the_post_thumbnail(array(180,180)); ?>
                            </a>
                        </div>
                        <div class="boxTitle">
                            <a href="<?php the_permalink(); ?>">
                                <h2><?php echo wp_trim_words( get_the_title(), 5,”); ?></h2>
                            </a>
                        </div>
                    </div>
                </div>
            <?php endwhile; ?>
        <?php endif; ?>
    </div>
</div>
کیوان علی محمدی

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

علی خسروی replyپاسخ

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

کیوان علی محمدی

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

علی خسروی replyپاسخ

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

کیوان علی محمدی

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

hossein pcs replyپاسخ

درود امکانش هست برای بخش replay یک html و style جدا گذاشت اینکار به چه صورت انجام میشه

کیوان علی محمدی

سلام.منظورتون فرم ارسال پاسخ هست؟

ارسال نظرات

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