- ۰ تومان
- هیچ محصولی در سبد خرید نیست.
محل قرار گرفتن ابزارک های وردپرس درون تم را به اصطلاح سایدبار می گوییم شما می توانید به تعداد دلخواه درون تم خود از سایدبار های متفاوتی استفاده کنید و محدودیتی در این مورد ندارید.
این تابع برای تعریف یک سایدبار سایت مورد استفاده قرار می گیرد و به صورت زیر می توانید از آن استفاده کنید.
<?php register_sidebar( $args ); ?>
$args = array( 'name' => __( 'Sidebar name', 'theme_text_domain' ), 'id' => 'unique-sidebar-id', 'description' => '', 'class' => '', 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>' );
name : نام سایدبار را مشخص می کند (پیش فرض آن ستون کناری + id عددی آن)
id : id سایدبار را مشخص می کند توجه داشته باشید که در پارامتر id از حروف انگلیسی کوچک و بدون فاصله باید استفاده شود (پیش فرض به صورت عددی بوده و به طور خودکار به آن عدد اضافه می شود.)
description : تعریف سایدبار در این قسمت قرار می گیرد. این تعریف بر روی صفحه نمایش مدیریت ابزارک ها نشان داده می شود. (پیش فرض آن خالی است)
before_widget : قبل از هر ابزارک وردپرس به صورت تگ html قرار می گیرد.
نکته : متغییرها با استفاده از تابع sprintf جایگزین می شوند.
after_widget : بعد از هر ابزارک وردپرس به صورت تگ html قرار می گیرد
before_title: قبل از هر عنوان ابزارک به صورت تگ های html قرار می گیرد.
after_title: بعد از هر عنوان ابزارک به صورت تگ های html قرار می گیرد.
تابع dynamic_sidebar
با استفاده از این تابع می توانیم سایدبار هایی را که درون فایل functions.php تعریف کرده ایم مورد استفاده قرار دهیم از این تابع به شکل زیر استفاده می کنیم. می توانید این کد را درون sidebar.php و یا مستقیما درون قالب های سایت قرار دهید.
<?php dynamic_sidebar($index) ?>
<?php dynamic_sidebar($index) ?>
<?php register_sidebar(array( 'name' => 'Sidebar1', 'id' => 'left-top', 'description' => 'سایدبار سمت چپ بالا' , 'before_widget' => '<div class="widget widget_top">', 'after_widget' => '</div>', 'before_title' => '<div class="widget_title"><h4>', 'after_title' => '</h4></div>', )); register_sidebar(array( 'name' => 'Sidebar2', 'id' => 'top-right', 'description' => 'سایدبار سمت راست', 'before_title' => '<div class="widget_title"><h4>', 'after_title' => '</h4></div>', 'before_widget' => '<div class="widget widget_right">', 'after_widget' => '</div>', )); ?>
<?php dynamic_sidebar('Sidebar1'); ?> <?php dynamic_sidebar('Sidebar2'); ?>
<? php register_sidebars( $number, $args ); ?>
$args = array ( 'name' => __('Sidebar %d'), 'id' => "sidebar-$i", 'description' => '', 'class' => '', 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>' );
<?php register_sidebars(2, array('name'=>'Foobar %d')); ?>
<?php get_sidebar( $name ); ?>
در صورتی که شما نام (name) خاصی را برای ستون کناری (سایدبار) در نظر گرفته باشید این تابع فایل sidebar-{name}.php را جهت نمایش فراخوانی خواهد نمود.
در حقیقت شما می توانید بخش ستون کناری را برای صفحات خاصی از سایت سفارشی سازی نمایید تنها کافیست فایلی با نام sidebar-{name}.php ایجاد نموده به پوشه تم مورد نظر بیافزایید. سپس توسط تابع فوق در صفحات مورد نظر فراخوانی نمایید . (بخش {name} با نامی که برای ستون کناری سفارشی در نظر گرفته اید جایگزین شود)
در صورتی که پوشه پوسته جاری حاوی فایل sidebar.php یا sidabar-{name}.php نباشد فایل ستون کناری از پوسته پیش فرض وردپرس در آدرس wp-includes/theme-compat/sidebar.php فراخوانی خواهد شد.
مثال:
اسکریپت زیر قالبی ساده را جهت نمایش صفحه ۴۰۴ نشان می دهد.
<?php get_header(); ?> <h2>Error 404 - Not Found</h2> <?php if ( is_home() ) { get_sidebar( 'home' ); }elseif ( is_404() ) { get_sidebar( '404' ); } else { get_sidebar(); } ?> <?php get_footer(); ?>
در مثال بالا مشاهده می کنید که پوسته با استفاده از تگ های شرطی وردپرس صفحه جاری را شناسایی نموده و ستون کناری مخصوصی را جهت نمایش فراخوانی می نماید.
جهت اجرای صحیح کد های فوق تم شما باید حاوی فایل های زیر باشد.
sidebar-home.php
sidebar-404.php
محتویات فایل های بالا باید شامل تابع dynamic_sidebar برای فراخوانی سایدبار مناسب هر کدام از فایل های پوسته باشد.
اگر به مشکلی برخورد کردید با ما به اشتراک بگذارید.
این پست یک دیدگاه دارد.
ولش داشتی خوب توضیح میدادی. خیلی پیچیدش کردی. نفهمیدم