آسان ترین روش ساخت مطالب مرتبط در وردپرس بدون افزونه
آسان ترین روش ساخت مطالب مرتبط در وردپرس بدون افزونه و پلاگین ، استفاده از یک روش استاندارد و اصولی برای نمایش مطالب مرتبط در قالب سایت فقط با چند خط کد
دوستان سئو 90 سلام . امروز در این آموزش کوتاه و فوق العاده مفید قصد داریم تا آسان ترین روش ساخت مطالب مرتبط در وردپرس بدون افزونه رو برای شما آموزش بدیم .
دوستانی که علاقمند به طراحی قالب های اختصاصی وردپرس هستند حتما می دونن که در بخش single post و یا همون فایل single.php زمانی که ما در حال طراحی قالب بخش نوشته ها هستیم و قصد داریم تا صفحه مطالب تکی رو طراحی کنیم ، برای اینکه کار ما استاندارد بشه و همچنین قالب ما حرفه ای تر و از لحاظ سئو هم بتونیم بهتر بشیم نیاز داریم تا مطالب مرتبط برای یک مطلب یا نوشته رو در انتهای اون یا در هر جای دلخواه نمایش بدیم .
دوستان ما برای نمایش مطالب مرتبط هر نوشته ( توجه داشته باشید که این آموزش برای پست تایپ از نوع post هستش ، یعنی برای بخش نوشته ها و برای پست تایپ های اختصاصی یا همون Custom Post Type ها آموزش دیگری خواهیم داشت ) ما باید حتما داخل صفحه single.php و در محلی خارج از حلقه اصلی یا همون حلقه while باشیم که برای مطلبمون در همون صفحه نوشتیم.
ما فرض می کنیم که شما حالا در محلی که برای نمایش مطلب مرتبط در نظر گرفتید هستید و می خواهید که کد زدن رو شروع کنید . دوستان اصول طراحی مطالب مرتبط بر اساس دسته بندی به این شکل هستش :
- اول میاییم و یک شی WP_Query می سازیم تا یک کوئری اختصاصی برای نمایش پست هایی با پارامتر های دلخواه خودمون داشته باشیم .
- ما باید دسته بندی رو که این پست داره رو بگیریم . یعنی برای مثال این پستی که شما در حال خوندنش هستید دسته بندیش css هست و من باید این دسته بندی رو بگیرم و داشته باشم تا پست های مرتبط رو که در دسته css هستن رو نشون بدیم .
- تعداد مطالب مرتبط که قراره نشون داده بشه رو تعیین کنیم .
- حتما پست هایی رو انتخاب کنیم که در حالت انتشار باشند نه حالت پیش نویس و در دست بررسی !
- این بخش از همه خیلی مهم تره :::: وقتی که ما پست های مرتبط با پست فعلی رو دریافت می کنیم ممکنه که خود همین پست رو هم داخل مرتبط ها برای ما نشون بده . برای اینکه خود پست فعلی هم نشون داده نشه باید از یک شرط دیگه هم استفاده کنیم .
- می تونیم حالت مرتب سازی رو هم براش تعیین کنیم که آیا آخرین مطالبی که مرتبط هستند رو برای ما لود کنه یا هر بار مطالبی رو به شکل تصادفی از دسته مرتبط برای ما نشون بده .
چگونه کد این بخش رو ایجاد کنیم ؟
همونطور که گفتیم ما قراره که آسان ترین روش ساخت مطالب مرتبط در وردپرس بدون افزونه به شما یاد بدیم . پس ما نباید بیش از چند خط کد بنویسیم . دوستان اول کد اصلی رو بیایید با هم ببینیم و خط به خط اون رو توضیح بدیم :
<?php $releated_posts=new WP_Query(array(
'post_type'=>'post',
'posts_per_page'=>'2',
'post_status'=>'publish',
'category__in'=> wp_get_post_categories($post->ID),
'post__not_in'=>[$post->ID],
));
if($releated_posts->have_posts()){ ?>
<div class="pages-baner text-center">
<h5>مقالات مرتبط</h5>
</div>
<?php while($releated_posts->have_posts()){ $releated_posts->the_post(); ?>
<div class="blg-wrapper col-md-3">
<a href="<?php the_permalink(); ?>">
<figure>
<?php if(has_post_thumbnail()){ ?>
<img src="<?php the_post_thumbnail_url(); ?>" alt="">
<?php } ?>
</figure>
</a>
<div class="meta">
<i class="fa fa-calendar-o"></i> <?php echo get_the_date(); ?>
</div>
<a href="<?php the_permalink(); ?>">
<h4><?php the_title(); ?></h4>
</a>
<?php the_excerpt(); ?>
<div class="text-right"><a href="<?php the_permalink(); ?>">بیشتر بخوانید</a></div>
</div>
<?php } } ?>
خب !
دوستان در خط اول کد ، ما اومدیم و یک WP_Query برای ساخت شی احتصاصی از پست ها ایجاد کردیم و اون را داخل متغیر با نام releated_posts ( نام اختیاری ) ریختیمش .خط 2 تا 6 پارامتر هایی هستند که ما با اون ها مشخص می کنیم که چه نوع پست هایی رو می خواییم دریافت کنیم .
خط دوم نوع پست تایپ مارو مشخص کرده که ما چون روی نوشته ها کار میکنیم از نوع post هست . خط 3 تعداد پست هایی هست که می خواییم دریافت کنیم که ما 2 تا پست رو تعیین کردیم . (عدد -1 تماس پست هارو لود خواهد کرد ) . خط 4 تعیین کردیم حتما پست ها در وضعیت منتشر شده باشند . خط 5 یک تایع خیلی جذاب از سری توابع مخصوص وردپرس هست که wp_get_post_categories هستش و یک پارامتر ورودی داره که آیدی پست فعلی ما هستش و ما آیدی پست فعلی رو به کمک post->ID دریافت کنیم و به عنوان پارامتر آیدی به این تابع ارسال کنیم .
خط 6 هم تعیین کردیم که همه پست های مرتبط برای ما نشون داده بشن بجز همین پستی که در حال خوندن اون هستیم . دفت کنید که این حالت جدیدترین پست هایی رو نشون میده که مرتبط هستند ، اگر می خواهید که پست ها به صورت تصادفی نشون داده بشن دوتا خط زیر رو هم به شرایط WP_Query اضافه کنید :
'orderby' => 'rand',
'order' => 'DESC',
در این حالت شما می تونید پست های مرتبط رو به شکل تصادفی لود کنید . خب برگردیم به بررسی ادامه کدهامون .
خب حالا ادامه کد ها رو بررسی کنیم !
در خط 8 توسط شرط if چک می کنیم که آیا همچنین شی که ما درنظر گرفتیم وجود داره و داخلش مطلبی برای ما تولید میشه با نه . اگر بود که ادامه کدها برای ما اجرا میشن اکر هم نبود که بخش های بعدی که بعد از if قراردارن اجرا نمیشن .
حالا اگر مطالب مرتبطی داخل این WP_Query وجود داشت بعد از if برای ما اجرا میشه . دوستان بعد از این ، همون حلقه خود وردپرس هست که با while نوشته میشه و توابع داخل حلقه که the_permalink و the_title و … هستد بسته به نوع طراحی قالب شما در بخش مطالب مرتبط دارن و شما با توجه به قالبتون که چه شکلی هست داخل حلقه از اونها استفاده می کنید برای مثال ما در خط 17 تصویر شاخص رو هم لود کردیم که ممکنه مطالب مرتب در قالب شما فقط شامل بخش عنوان و لینک باشه که داخل حلقه کاملا بستگی به سلیقه شما داره .
مهم همون حلقه اصلی هستش توسط WP_Query تشکیل میدیم و پارامترهای داخل اون هستن .
دوستان این نکته رور هم بدونید که این روش واقعا آسان ترین روش ساخت مطالب مرتبط در وردپرس بدون افزونه هستش و در تمامی قالب ها می تونید بدون مشکل ازش استفاده منید . یک نکته مهم دیگه این هست که مطالب مرتبط می تونه بر پایه برچسب ها و یا دسته ها و یاهردو پیاده بشن که چون تعداد برچسب ها در سایت ها خیلی زیاد هستش اصولی ترین روش بری ساخت مطالب مرتبط این هست که اونها رو از یک دسته بندی برسی کنیم و مطالب مرتب رو براساس دسته بسازیم .
امیدوارم که این آموزش برای شما مفید بوده باشه . لطفا نظرات خودتون رو در بخش نظرات برای ما اعلام کنید تا در بهبود سطح آموزش ها لحاظ بشن .

امید قدیمی هستم ، 8 سال است که در زمینه طراحی و برنامه نویسی وب سایت فعالیت می کنم . توسعه دهنده فرانت اند ، طراح و برنامه نویس انواع وب سایت های وردپرسی ، فعال در زمینه تولید محتوا و سئو وب سایت
با سلام این کار به دو صورت ممکن است در روش اول کافیست در قسمت چکیده نوشته متن رو وارد کنید هر متنی که در قسمت چکیده وارد شود نمایش داده میشود روش دوم استفاده از فیلتر excerpt_length میباشد و یا میتوانید از افزونه Advanced Excerpt برای این کار استفاده کنید که از روش فیلتر کردن استفاده میکند