ژانویه 31, 2020 Mostafa بدون دیدگاه

سلام دوستان! برای اینکه برگه های مرتبط رو در وردپرس نشون بدیم,هم می تونیم از افزونه YARPP استفاده کنیم,هم با کدنویسی این کار رو انجام بدیم.من تو این مقاله هر دو راه رو می نویسم انتخاب با خودتون.

راه اول با استفاده از افزونه YARPP

استفاده از افزونه (yet another related posts plugin (YARPP  ساده ترین راه برای اینکاره.این افزونه رو نصب و فعال کنید.

در صفحه تنظیمات افزونه به قسمت “نمایش تنظیمات برای وبسایت شما”بروید.تیک مربوط به “برگه ” را بزنید (در صورتی که تمایل داشته باشید پست های مرتبط نمایش داده شود می توانید تیک ” پست” را بزنید).

اگر قصد دارید پست های مرتبط را نشان دهید,در قسمت ” مخزن” نیز می توانید مشخص کنید که منابع مرتبط کدام  دسته ها یا برچسب های سایت شما باشد.

توجه داشته باشید که این افزونه و بعضی افزونه های وردپرسی دیگه (به این دلیل که درخواست های زیادی رو برای پایگاه داده می فرستند)توسط بعضی از سرویس های هاست وردپرس مسدود شده.در ضمن اگه پایگاه داده شما با InnoDB  ست شده باشه این افزونه نمی تونه کار کنه.پس در صورت بروز مشکل حتما این دو نکته رو در نظر بگیرید.

راه دوم بدون استفاده از افزونه ها

این نکته رو یاداوری میکنم که همینطور که میدونید,در وردپرس “پست” و”برگه”  با هم متفاوت هستند و برگه ها دارای دسته یا برچسب نیستند.پس اول باید امکان برچسب گذاری و دسته بندی رو با استفاده از افزونه Post Tags and Categories for Pages ایجاد کنیم.این افزونه رو نصب و فعال کنید.این افزونه نیازی به تنظیم نداره و به راحتی امکان دسته بندی و برچسب گذاری رو برای برگه های شما فراهم میکنه.

حالا برگه هاتون رو ویرایش کنید و برگه هایی رو که مایلید به صورت مرتبط نمایش بدید با برچسب مشترک علامت گذاری کنید.مثلا سایت شما سه برگه داره,یکی در مورد تاریخچه شرکت شما ,آدرس شرکت و نوع فعالیت شرکت این سه صفحه رو با برچسبی مشترک مثل کلمه “درباره ما” علامت گذاری کنید.

حالا کد زیر رو به فایل functions.php پوسته سایتتون اضافه کنید.

function wpb_related_pages() {
$orig_post = $post;
global $post;
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag)
$tag_ids[] = $individual_tag->term_id;
$args=array(
'post_type' => 'page',
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
'posts_per_page'=>5
);
$my_query = new WP_Query( $args );
if( $my_query->have_posts() ) {
echo '<div id="relatedpages"><h3>Related Pages</h3><ul>';
while( $my_query->have_posts() ) {
$my_query->the_post(); ?>
<li><div class="relatedthumb"><a href="<? the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_post_thumbnail('thumb'); ?></a></div>
<div class="relatedcontent">
<h3><a href="<? the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
<?php the_time('M j, Y') ?>
</div>
</li>
<? }
echo '</ul></div>';
} else {
echo "No Related Pages Found:";
}
}
$post = $orig_post;
wp_reset_query();
}

این کد ابتدا برچسب ها رو در برگه تشخیص میده و یه دستور به پایگاه داده می فرسته که برگه هایی رو که این برچسب ها رو دارند درخواست کنه.خب حالا شما لیستی از برگه های مرتبط دارید برای نمایش این لیست کافیه کد زیر رو در فایل page.php جایی که قصد دارید برگه های مرتبط نمایش داده شوند قرار بدید.

  
<br /><!--?php wpb_related_pages(); ?><br />

ممکنه نمایش نهایی کار زیاد زیبا نباشه (خیلی ساده است).شما میتونید با چند تا کد css  نمایش بهتری رو برای این برگه ها ایجاد کنید.


نظرات

توجه : لطفاً فقط نظرات خود را از این طریق ارسال نمایید و سوالات و مشکلات خود را در انجمن سایت مطرح نمایید.