کد افزودن مطالب مرتبط به قالب وردپرسی

توسط کدی که در ادامه قرار می دهم شما می توانید بدون نصب افزونه بخش مطالب مرتبط را به قالب وردپرسی تان اضافه کنید ! .

مطالب مرتبط چیست ؟

مطالب مرتبط (Related Posts) به مطالبی گفته می شود که از نظر موضوعی در همان دسته ای قرار دارند که مطلب فعلی شما قرار دارد.

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

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

این نکته را یاد آور شوم که در وردپرس به صفحه ای که متن کامل یک مطلب را نمایش می دهد صفحه ی single گفته می شود ، و اگر به پوشه ی قالبتان مراجعه کنید فایلی با نام single.php را می توانید ببینید .

خوب برویم به سراغ کد ، ابتدا فایل single.php را باز کنید.

به دقت کدهای موجود در این فایل را بررسی کنید ، معمولا مطالب را در یک تگ div با یک کلاسی به نام post و یا در یک تگ article با همان نام کلاس درج می کنند ، اما گاهی اوقات این تگ در درون یک تگ دیگری به نام کلاس entry و یا هر نام دیگری بسته به قالبتان درج می شود.

سعی کنید انتهای تگی که مطلبتان در آن قرار گرفته را پیدا کنید :

در اچ تی ام ال تگ باز به این شکل

 < div > 

و تگ بسته به این شکل است :

 </div> 

توجه کنید که تگ div یکی از تگ های اچ تی ام ال است که در اینجا به عنوان مثال به کار برده شده ، ولی دیگر تگ ها نیز از همین قانون پیروی می کنند.
همچنین اکثر تگ های باز حتما یک تگ بسته دارند .
اگر هنوز هم در پیدا کردن جایی که تگ بسته می آید مشکل دارید ، نرم افزار Notepad++ را نصب کنید ، فایل را با آن باز کرده و با موس هر تگی را که مشاهده کردید علامت دار کنید ، تا خودش انتهای آن تگ را به شما نمایش دهد.
سپس کد زیر را بعد از تگ بسته درج کنید:

<div class="relatedposts">  
<h3>Related posts</h3>  
<?php  
    $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(  
    'tag__in' => $tag_ids,  
    'post__not_in' => array($post->ID),  
    'posts_per_page'=>4, // Number of related posts to display.  
    'caller_get_posts'=>1  
    );  
      
    $my_query = new wp_query( $args );  
  
    while( $my_query->have_posts() ) {  
    $my_query->the_post();  
    ?>  
      
    <div class="relatedthumb">  
        <a rel="external" href="<? the_permalink()?>"><?php the_post_thumbnail(array(150,100)); ?><br />  
        <?php the_title(); ?>  
        </a>  
    </div>  
      
    <? }  
    }  
    $post = $orig_post;  
    wp_reset_query();  
    ?>  
</div> 

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

.relatedposts {width: 640px; margin: 0 0 20px 0; float: left; font-size: 12px;}  
.relatedposts h3 {font-size: 20px; margin: 0 0 5px 0; }  
.relatedthumb {margin: 0 1px 0 1px; float: left; }  
.relatedthumb img {margin: 0 0 3px 0; padding: 0;}  
.relatedthumb a {color :#333; text-decoration: none; display:block; padding: 4px; width: 150px;}  
.relatedthumb a:hover {background-color: #ddd; color: #000;}

تا با اینجا کار تمام است و با باز کردن یکی از مطالب باید آن را به صورت خوابیده پس از مطلبتان مشاهده نمایید .
اما گاهی اوقات ممکن است قالب شما از تصاویر شاخص پشتیبانی نکند و یا شما به هنگام ارسال مطالبتان برایشان تصویر شاخص قرا نداده اید ، که در این صورت متن خالی نمایش داده می شود .
اگر مورد اول پیش آمده باشد فایل functions.php را باز کنید واین عبارت را در آن جستجو کنید :
add_theme_support
این عبارت یک تابع وردپرسی است که به وردپرس می گوید این قالب از تصاویر شاخص پشتیبانی می کند.
اگر این نام به هیچ عنوان در آن فایل موجود نبود به ابتدای فایل functions بروید سپس کدهای زیر را در آنجا درج کنید:

add_theme_support( 'post-thumbnails' );  
set_post_thumbnail_size( 100, 50, true ); 

با قرار دادن این کد در آنجا با ارسال هر مطلب جدیدی در سایتتان وردپرس به صورت خودکار برای آن یک تصویر شاخص ایجاد می کند (در صورتی که شما به هنگام ارسال مطلب جدید از قسمت تصویر شاخص تصویری به مطلب ارسالی الصاق کنید).
اما مشکل اینجاست که مطالبی را که قبلا ارسال کرده اید شامل نمی شود ! برای حل این مشکل پلاگین هایی منتشر شده اند که با کمی جستجو در مخزن افزونه ها و یا گوگل می توانید یکی را یافته و نصب کنید تا به صورت خودکار این کار را برایتان انجام دهد.

این مطلب برگرفته از وبسایت http://www.hongkiat.com می باشد برای مشاهده نسخه اصلی به زبان انگلیسی اینجا کلیک کنید.
همچنین توضیحات توسط بنده اضافه شده و در صورت داشتن هرگونه مشکلی در نظرات مطرح کنید تا برطرف کنم.

اگر مفید بود به اشتراک بگذارید ! کلوب فیس نما گوگل پلاس

جوابی بنویسید

ایمیل شما نشر نخواهد شدخانه های ضروری نشانه گذاری شده است. *

*