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

دسته بندی: وردپرس
زمان مطالعه: 1 دقیقه
۱۲ دی ۱۳۹۴

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

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

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

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

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

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

جلسات دوره

نظرات کاربران

hossein pcs

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

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

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

علی خسروی

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

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

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

علی خسروی

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

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

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

علی خسروی

سلام استاد اون قسمت طول عنوان مطلب رو درست کردم ولی هنوز وقتی این فایل 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>
کیوان علی محمدی

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

علی خسروی

استاد یه سوال دیگه البته با عرض معذرت
من تو سایتم یه بخشی رو برای بعضی صفحات قرار دادم به عنوان مطالب پر بازدید یا جدیدترین مطالب و برای اون بخش ها نمی خوام 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 وردپرس استفاده کنید.

علی خسروی

سلام استاد خسته نباشید من قسمت دیدگاه ها رو بدون هیچ مشکلی راه اندازی کردم
ولی وقتی تو فایل 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>
علی خسروی

سلام استاد اون قسمت طول عنوان مطلب رو درست کردم ولی هنوز وقتی این فایل 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>
کیوان علی محمدی

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

محمدرضا

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

function tiva_enqueue_comments_reply() {
 if( is_singular() &amp;&amp; comments_open() &amp;&amp; ( get_option( &#8216;thread_comments&#8217; ) == 1) ) {
  // Load comment-reply.js (into footer)
  wp_enqueue_script( &#8216;comment-reply&#8217;, &#8216;wp-includes/js/comment-reply&#8217;, array(), false, true );
 }
}
add_action(  &#8216;wp_enqueue_scripts&#8217;, &#8216;tiva_enqueue_comments_reply&#8217; );
 
کیوان علی محمدی

ممنون از شما.

محمدرضا

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

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

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

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

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

حمید

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

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

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

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

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

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.