روزهای خط خطی  | مطالب برگزیده در وردپرس – قدم سوم

مطالب برگزیده در وردپرس – قدم سوم

نمایش مطالب برگزیدهدر قسمت اول این مطلب دستکاری صفحه ی ویرایش نوشته ها در وردپرس را بررسی کردیم و از این طریق توانستیم هنگام نگارش یا ویرایش نوشته ها، مطالب برگزیده را انتخاب کنیم. در قدم بعد همین امکان را در منوی ویرایش سریع وردپرس گنجاندیم تا با سرعت و سهولت بیشتری مطالب «برگزیده» را انتخاب کنیم یا مطالب «برگزیده» را به حالت «عادی» برگردانیم.

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

برای این کار باید سه فایل جدید ایجاد کنیم:

  • featured.php: حاوی کد مربوط به اسخراج و نمایش مطالب برگزیده است که در قسمت مربوطه در پوسته ی سایت فراخوانی خواهد شد.
  • featured.js: حاوی کد جاوااسکریپت مربوط به نمایش مطالب برگزیده است.
  • featured.css: مربوط به استایل های قسمت مطالب برگزیده است.

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

 PHP | 
 
 copy code |
?

01
<?php
02
//Displaying Featured Posts
03
if (is_home())
04
{
05
 include( get_stylesheet_directory() . '/featured.php' );
06
 wp_enqueue_style('featured_style' ,
07
 get_bloginfo('stylesheet_directory') . '/featured.css' , false);
08
 wp_enqueue_script('featured_script',
09
 get_bloginfo('stylesheet_directory') . '/featured.js', 'jQuery');
10
}
11
?>

در تکه کد بالا از تابع is_home در ساختار شرطی استفاده کرده ایم که باعث می شود کد فقط در صفحه ی نخست سایت اجرا شود. خط 5 با استفاده از دستور include فایل featured.php را بارگذاری می کند. خطوط 6 و 7 فایل css را با استفاده از تابع wp_enqueue_style اضافه کرده و دو خط 8 و 9 هم فایل مربوط به کد jQuery را با تابعی مشابه به نام wp_enqueue_script به صفحه ی اصلی سایت اضافه می کند. حالا می توانیم محتویات هر کدام از سه فایل بالا را مورد بحث قرار دهیم.

featured.php

 PHP | 
 
 copy code |
?

01
<?php
02
$featured_posts_query = new WP_Query(array('posts_per_page' => '6'
03
 ,'meta_key' => 'is_featured'
04
 ,'meta_value' => 'on'));
05
?>
06
<div id="featured_posts">
07
<?php
08
echo '<h1 class="featured_h1">مطالب برگزیده ی سایت</h1>';
09
while ($featured_posts_query -> have_posts())
10
{
11
 echo '<div class="featured_slide">';
12
 $featured_posts_query -> the_post();
13
 $title = get_the_title();
14
 echo '<div class="featured_title"><h2 class="featured_h2">'
15
 .get_the_title().'</h2></div>';
16
 echo '<div class="featured_excerpt">'.get_the_excerpt().'</div>';
17
 echo '</div>';
18
}
19
?> 
20
</div>

در کد بالا قسمتی که بین خطوط 1 تا 5 قرار دارد یک شیء جدید از کلاس WP_Query ایجاد می کند. این شیء که featured_posts_query نام دارد مانند یک query عادی وردپرس است که برای نمایش پست ها از آن استفاده می شود با این تفاوت که طبق تنظیماتی که حین ایجاد برای آن تعیین کرده ایم نوشته هایی را از پایگاه داده ی وردپرس استخراج یم کند که مقدار is_featured برای آن ها تعریف شده باشد. به علاوه در هر مجموعه ی پست که به عنوان یک صفحه در کنار هم قرار داده می شوند 6 پست وجود خواهد داشت. به این ترتیب در حین نمایش در سایت ما 6 مورد از آخرین مطالب برگزیده را خواهیم دید. البته بسته به نیازمان می توانیم این عدد را تعییر دهیم. در ادامه ی کد هم عنوان و چکیده ی هر کدام از مطالب به ترتیب با استفاده از توابع the_title و get_the_excerpt نمایش داده می شود. مابقی کار به عهده ی فایل css مربوطه می باشد.

featured.css

 CSS | 
 
 copy code |
?

01
#featured_posts
02
{
03
 min-width:660px;
04
 height:470px;
05
 background-image:url('images/featured_area.png');
06
}
07
.featured_slide
08
{
09
 width:630px;
10
 padding:10px 20px 0px 10px;
11
}
12
.featured_h1
13
{
14
 font-family:tahoma;
15
 font-weight:bold;
16
 font-size:28px;
17
 color:#A88F00;
18
 padding-top:15px;
19
 padding-right:45px;
20
}
21
.featured_title
22
{
23
 background-image:url('images/title.png');
24
 width:612px;
25
 height:45px;
26
 font-family:tahoma;
27
 font-size:24px;
28
 color:#E0E0E0;
29
}
30
.featured_h2
31
{
32
 padding:7px 15px;
33
}
34
.featured_excerpt
35
{
36
 font-family:tahoma;
37
 font-size:12px;
38
 line-height:1.5em;
39
 text-align:justify;
40
 margin:10px 50px 10px 10px;
41
 display:none;
42
}

محتویات فایل css بین خط های 1 تا 6 مربوط به کادری است که همه ی مطالب برگزیده در آن نمایش داده می شود. در این قسمت در خط 5 یک تصویر که قبلا آن را برای این قسمت آماده کرده ایم به عنوان پس زمینه قرار داده می شود. ابعاد این فایل 660 در 440 پیکسل است و همانطور که در خط 3 و 4 هم مشخص است، ابعاد این قسمت را هم هم اندازه با فایلمان در نظر گرفته ایم.

خطوط 21 تا 29 هم مربوط به استایل عنوان هر کدام از مطالب برگزیده است و به شکلی مشابه روالی که در بالا اشاره شد قبلا یک فایل به ابعاد 612 در 45 پیکسل برای پس زمینه ی آن آماده کرده ایم. تعیین ابعاد دقیق این بخش و بخشی که در پاراگراف قبلی به آن اشاره شد از این جهت حائز اهمیت است که دقیقا با ابعاد فایل هایی که برای پس زمینه انتخاب کرده ایم همخوانی داشته باشد.

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

featured.js

 Javascript | 
 
 copy code |
?

1
jQuery('document').ready(function(){
2
 jQuery('.featured_excerpt:eq(0)').show();
3
});
4
jQuery('.featured_slide').find('h2').click(function(){
5
 jQuery('.featured_excerpt').slideUp('fast');
6
 jQuery(this).parent().parent().children().slideDown('slow');
7
});

خط 1 تا 3 کد به نمایش چکیده ی نخستین مطلب به محض بارگذاری صفحه اختصاص داشته و خط 4 تا 7 کد jQuery نوشته شده منتظر کلیک روی عنوان مطالب برگزیده می ماند. با هر کلیک نخست همه ی چکیده هایی که باز هستند مخفی می شوند و سپس چکیده ی مربوط به مطلبی که روی عنوان آن کلیک شده به نمایش در می آید.

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *