روزهای خط خطی  | منوی سفارشی در وردپرس

منوی سفارشی در وردپرس

منوی سفارشی در وردپرسسیستم مدیریت محتوای محبوب وردپرس با انتشار نسخه ی 3.0 به قابلیت قدرتمند منوهای سفارشی مجهز شده است که به صاحب سایت اجازه می دهد منوهای دلخواه خود را ساخته و نمایش دهد. به این ترتیب دست مدیر سایت باز است تا از میان برگه ها و دسته های سایت موارد مورد نظرش را انتخاب کرده و به ترتیبی که مناسب می داند در کنار هم بچیند، لینک های متفرقه دلخواهش را نیز به منوی جدید اضافه کرده و در نهایت این منوی سفارشی را در مکان دلخواه روی سایت منتشر کند.

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

در قدم اول باید برای منوهای جدیدمان مکان تعریف کنیم. به این ترتیب می توانیم در قسمت «فهرست ها» بعد از ایجاد منوی جدید می توانیم یکی از این مکان ها را به آن اختصاص بدهیم. برای این کار از تابع register_nav_menus می کنیم. ساختار کلی استفاده از این تابع به شکل زیر است.

 PHP | 
 
 copy code |
?

1
<?php register_nav_menus(array($location1 => $description1,
2
 $location2, $description2)); ?>

و کد زیر را در فایل functions.php پوسته ی سایت وارد می کنیم. به جای $location نام دلخواه خود را قرار می دهیم. این نام بعدا در حین فراخوانی منو مورد استفاده قرار خواهد گرفت. $description هم حاوی توضیحی خواهد بود که کاربر در قسمت «فهرست ها» مشاهده خواهد کرد.

حالا ما قصد داریم دو محل جدید برای منوها تعریف کنیم. برای این کار کد زیر را در فایل functions.php پوسته وارد می کنیم.

 PHP | 
 
 copy code |
?

1
register_nav_menus( array( 'header_custom' => 'Custom Header Menu',
2
 'footer_custom' => 'Custom Footer Menu'));

کد بالا برای ما دو محل جدید با نام ها header_custom و footer_custom تعریف می کند. حالا اگر وارد قسمت «فهرست ها» شویم باید کادری شبیه به این تصویر ببینیم.مکان های موجود در پوستهحالا کاربر می تواند هر یک از این دو مکان جدید را به یکی از منوهای سفارشی که اخیرا ساخته تخصیص بدهد. اما هنوز یک اشکال وجود دارد. باید کد نمایش این مکان ها را به پوسته اضافه کنیم تا نتیجه ی کارمان را ببینیم. برای این کار هم از تابع wp_nav_menu استفاده می کنیم و کد زیر را در قسمت مورد نظرمان در پوسته قرار می دهیم.

 PHP | 
 
 copy code |
?

1
<?php wp_nav_menu(array('theme_location' => 'header_custom',
2
 'menu_class' => 'header_custom_menu')); ?>

در کد بالا theme_location مکانی که بناست نمایش داده شود را تعیین می کند و menu_class یک نام انتخابی دلخواه برای کلاس cssای است که به منو اختصاص داده خواهد شد. البته تنها پارامتر اول اجباری بوده و هدف از قراردادن پارامتر دوم آسان کردن تخصیص استایل جداگانه به هر کدام از منوهای سایت است.

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

3 پاسخ به “منوی سفارشی در وردپرس”

  1. مرتضی گفت:

    بیشتر از این مطلب،شعرهای داخل وبسایتت منو جذب کرد!!!

  2. مهدی گفت:

    سلام
    کدهای بالا رو هر کدام دقیقا باید کجا کپی کنیم
    با احترام

    • امیدرضا امیدرضا گفت:

      سلام دوست عزیز
      باید اول با استفاده از تابع register_nav_menus در فایل functions.php قالب یک مکان جدید تعریف کنیم. محل استفاده از این تابع در فایل functions.php تفاوت چندانی در اجرای آن ایجاد نمی کند.
      بعد از تعریف مکان جدید می توانیم از قسمت مدیریت به آن محتوا اختصاص دهیم.
      در نهایت هم هر جای قالب که نیاز به استفاده از منوی ایجاد شده داشتیم با استفاده از تابع wp_nav_menu آن را فراخوانی می کنیم.
      امیدوارم که به اندازه ی کافی توضیح داده باشم ولی اگر باز هم نقطه ابهامی وجود داشت خوشحال میشم بتونم کمکتون کنم.

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

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