هماهنگ کردن قالب‌های چند ستونه با Widgets

یکشنبه ۲۹ بهمن ۱۳۸۵ @ ۲۰:۴۰

برای اینکه با Widgets بیشتر آشنا بشید پیشنهاد می‌کنم این دو تا نوشته رو بخونید:
Widgets چیست و چگونه آن‌را نصب کنیم؟
چگونه قالب‌های خود را با Widgets هماهنگ کنیم؟

بریم سر بحث اصلیمون، یعنی هماهنگ کردن قالب‌هایی که از چند نوار کناری استفاده می‌کنن با Widgets، تو این شرایط دو حالت ممکنه پیش بیاد:

۱. همه‌ی ستون‌های شما از نظر کدنویسی مشابه باشند
۲. ستون‌های شما از نظر کدنویسی متفاوت باشند

که ما به‌تفصیل هر دو حالت رو شرح می‌دیم.

  • حالت اول (کدنویسی مشابه):

در این حالت چون ساختار کدنویسی ستون‌ها مانند هم است می‌خواهیم با یک دستور به تعداد دلخواه نوار کناری تعریف کنیم، برای این کار در پوشه‌ی قالب خود فایل functions.php را بیابید (اگر وجود ندارد آن‌را ایجاد کنید) و دستورات زیر را به آن اضافه کنید:

اگر از نوارکناری لیستی استفاده می‌کنید:

if ( function_exists('register_sidebars') )
    register_sidebars(N);

اگر از نوارکناری غیرلیستی استفاده می‌کنید:

if ( function_exists('register_sidebars') )
    register_sidebars(N, array(
        'before_widget' => 'BEFORE_WIDGETS_CODE',
        'after_widget' => 'AFTER_WIDGETS_CODE',
        'before_title' => 'BEFORE_WIDGETS_TITLE_CODE',
        'after_title' => 'AFTER_WIDGETS_TITLE_CODE'
    ));

که در کدهای بالا به‌جای N در تابع register_sidebars تعداد نوارکناری‌هایی که می‌خواهید ایجاد شوند را بنویسید، مثلن برای به‌وجود آوردن ۲ نوارکناری داریم:

اگر از نوارکناری لیستی استفاده می‌کنید:

if ( function_exists('register_sidebars') )
    register_sidebars(2);

اگر از نوارکناری غیرلیستی استفاده می‌کنید:

if ( function_exists('register_sidebars') )
    register_sidebars(2, array(
        'before_widget' => 'BEFORE_WIDGETS_CODE',
        'after_widget' => 'AFTER_WIDGETS_CODE',
        'before_title' => 'BEFORE_WIDGETS_TITLE_CODE',
        'after_title' => 'AFTER_WIDGETS_TITLE_CODE'
    ));

نکته: برای آگاهی از مفهوم نوارهای لیستی و غیرلیستی و همچنین آرگومان‌هایی که در حالت غیرلیستی در تابع register_sidebars استفاده شده است به نوشته‌ی قبلی من در همین مورد مراجعه کنید.

حال برای صدا زدن نوارهای کناری که تعریف کرده‌ایم همچون نوشته‌ی قبلی از تابع dynamic_sidebar به‌صورت شرطی در ابتدا و انتهای نوارکناری معمولی‌مان استفاده می‌کنیم:

ابتدا:

<?php if ( !function_exists('dynamic_sidebar')  || !dynamic_sidebar(شماره مشخصه نوار کناری) ) : ?>

انتها:

<?php endif; ?>

که به‌جای «شماره مشخصه نوار کناری» در تابع dynamic_sidebar در ابتدای نوار کناری معمولی، عدد مشخصه نوارکناری مورد نظرمان را می‌گذاریم، مثلن برای فراخوانی نوار شماره ۲ داریم:

در ابتدا:

<?php if ( !function_exists('dynamic_sidebar')  || !dynamic_sidebar(2) ) : ?>
  • حالت دوم (کدنویسی متفاوت):

برای این حالت به‌تعداد نوارکناری‌هایی که می‌خواهیم تعریف کنیم باید از تابع register_sidebar استفاده کنیم و هر نوار را به‌دلخواه نامگذاری کنیم.

برای مثال من دو نوار می‌خوهم تعریف کنم که نام یکی را “Avali” و نام دیگری را هم “Dowomi” می‌گذارم، که اولین نوارکناری به‌صورت لیستی است و نوار دوم به‌صورت غیرلیستی، در فایل functions.php می‌نویسیم:

if ( function_exists('register_sidebar') ) {
	register_sidebar(array(
		'name' => 'Avali'
	));
	register_sidebar(array(
		'name' => 'Dowomi',
		'before_widget' => 'BEFORE_WIDGETS_CODE',
        'after_widget' => 'AFTER_WIDGETS_CODE',
        'before_title' => 'BEFORE_WIDGETS_TITLE_CODE',
        'after_title' => 'AFTER_WIDGETS_TITLE_CODE'
	));
}

بدین‌ترتیب دو نوارکناری با نام‌های Avali و Dowomi تعریف کردیم، حال برای فرخوانی آنها در قالب خود طبق معمول از تابع dynamic_sidebar استفاده می‌کنیم، و نام نوارکناری موردنظرمان را به‌عنوان آرگومان ورودی تابع معرفی می‌کنیم.

برای فراخوانی اولین نوارکناری داریم:

< ?php if ( !function_exists('dynamic_sidebar')  || !dynamic_sidebar('Avali') ) : ?>
	محتویات نوارکناری اول در حالت عادی
< ?php endif; ?>

و برای دومی هم داریم:

< ?php if ( !function_exists('dynamic_sidebar')  || !dynamic_sidebar('Dowomi') ) : ?>
	محتویات نوارکناری دوم در حالت عادی
< ?php endif; ?>

تموم شد، همین! :)

مرتبط:
Widgets چیست و چگونه آن‌را نصب کنیم؟
چگونه قالب‌های خود را با Widgets هماهنگ کنیم؟

۱ بازتاب

۱ نظر

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

نظرات بسته شدن!

در جستجوی مرزهای انسانیت

از دیگران

به کجا؟

باشد
از تنهایی‌ام بیرون می‌زنم
اما به کجا؟

آدونیس

لینکدونی

درباره‌ی نگارنده

مباحث مورد علاقه‌م بیشتر تو مایه‌های جامعه‌شناسی و فرهنگ هست. از سیاست [چون با دروغ آمیخته‌ست] خوشم نمیاد.
هرگز از این نمی‌ترسم که نوشته‌های الانم با گذشته‌ها تناقض داشته باشه٬ آدم‌ها عوض می‌شن٬ اگه تناقضی توی نوشته‌هام دیدین٬ نوشته‌ی جدیدتر رو طرز فکر فعلی‌م بدونبن.
در مورد اینکه چرا گناهکار رو انتخاب کردم هم اینجا نوشتم: چرا گناهکار؟

تماس

Gonahkarblog روی Gmail

جستجو


بایگانی

خبرنامه

برای عضویت در خبرنامه و دریافت مطالب وبلاگ٬ ایمیل خود را وارد کنید.

لینک‌ها

گزیر - جمهور - یک پزشک - شب تار - Dizzy Rocker - نیک آهنگ - راز سر به‌مهر - خواب بزرگ - پاپيون - شوالیه‌ای با شنل سرمه‌ای نقش‌شده با نشان طلاکوب شیر - فارس تک - داریوش کبیر - بلاگ‌نوشت - کیبرد آزاد - امشاسپندان - آشوب - راه من - الوان وب - من بچه ملا ۲۵ سال دارم - روبو - زمستان است - نقطه ته خط - کارپه دیم - ماني آنلاين - شادی شاعرانه - پابرهنه برخط - ندای امروز - کودن با استعداد - امشاسپند - زاپاس - بی‌اجازه کوچیکترا نه - هویت - دختری از تبار ماه هفت - Corelist - رسانه - itLine - امروز ما - لحظه - میم‌نون - مسافر - هادی فرنود - آخرین پدرخوانده - حرف حساب - شیدا - سی و یک اسفند - روزها - تلایه - نیما دارابی - دست‌نوشته‌های یک دردگرفته - متتی - از اهالی امروز - کویرزاد - شاهو توفانی - وحید - دلکوک - چرا من نه - امیدانه‌های امید - پژ - سمن آیین - پژواک - فانوس آزاد - بدون نوشابه بدون سس - نگاه گمنام - آشوک - عصر نوشتن - فارسی موبایل - مطرود - میهن دانلود - بلاگ‌لیست - من بدون سانسور - دخترو - مشتاقی - نودهشتیا -