نحوه افزودن موارد سفارشی به منوهای خاص وردپرس

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

توجه: این آموزش برای توسعه دهندگان قالب وردپرس در نظر گرفته شده است ، بنابراین انتظار می رود که شما از html / css اساسی و درک درست از نحوه کار با تم های وردپرس آگاهی داشته باشید.

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

بیایید با اصول اولیه شروع کنیم. ما باید فیلتر خود را به قلاب wp_nav_menu_items اضافه کنیم. یک مثال به این شکل است:

add_filter ('wp_nav_menu_items'، 'your_custom_item_item'، 10، 2)؛
عملکرد your_custom_menu_item ($ مورد ، $ args) {
    if (is_single () && args-> theme_location == "اولیه") {
        $ items. = '
  • نمایش هر چیزی
  • ‘؛
    }
    بازگشت $ اقلام؛
    }

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

    اکنون که یک مثال اساسی را مشاهده کردید ، اجازه دهید چند نمونه خاص از نحوه عملکرد را به شما نشان دهیم.

    افزودن پیوندهای ورود / خروج به منوی خاص WordPress

    اگر می خواهید به کاربران خود امکان ورود / خروج را بدهید ، بنابراین مکانی که می توانید پیوندها را اضافه کنید در منوی سفارشی شما است. قطعه زیر پیوندهای ورود / خروج را به طور مناسب در مکان منو: اصلی به کاربران شما نشان می دهد. در صورت تمایل می توانید مکان منو را تغییر دهید.

    add_filter ('wp_nav_menu_items'، 'add_loginout_link'، 10، 2)؛
    تابع add_loginout_link ($ مورد ، $ args) {
        if (is_user_logged_in () && $ args-> theme_location == "اولیه") {
            $ items. = '
  • از سیستم خارج شوید
  • ‘؛
    }
    elseif (! is_user_logged_in () && args-> theme_location == ‘اولیه’) {
    $ items. = ‘

  • وارد شوید
  • ‘؛
    }
    بازگشت $ اقلام؛
    }

    افزودن نوار جستجو به یک منوی خاص h4>

    آیا می خواهید یک نوار جستجو به یک منوی خاص اضافه کنید؟ خوب بیشتر از این نگاه نکن می توانید این کار را با چسباندن قطعه زیر انجام دهید:

    add_filter ('wp_nav_menu_items'، 'add_search_box_to_menu'، 10، 2)؛
    تابع add_search_box_to_menu ($ مورد ، $ args) {
        if ($ args-> theme_location == 'اولیه')
            موارد $ را برگردانید. "

    “؛

    بازگشت $ اقلام؛
    }

    افزودن تاریخ امروز به یک منوی خاص وردپرس h4>

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

    افزودن_فیلتر ('wp_nav_menu_items' ، 'add_todaysdate_ate_in_menu' ، 10 ، 2)؛
    تابع add_todaysdate_in_menu ($ مورد ، $ args) {
        if ($ args-> theme_location == 'اولیه') {
    
    $ Todaysdate = date ('l jS F Y')؛
            $ مورد. = '
  • ‘. $ امروز تاریخ. ‘
  • ‘؛

    }
    بازگشت $ اقلام؛
    }

    امیدواریم این مقاله به توسعه دهندگان این امکان را بدهد تا عملکرد مضامین خود را گسترش دهند.

    منبع:
    https://www.wpbeginner.com/wp-themes/how-to-add-custom-items-to-specific-wordpress-menus/.

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


    Fatal error: Uncaught wfWAFStorageFileException: Unable to save temporary file for atomic writing. in /home/wekjriusd1/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php:35 Stack trace: #0 /home/wekjriusd1/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php(659): wfWAFStorageFile::atomicFilePutContents('/home/wekjriusd...', '<?php exit('Acc...') #1 [internal function]: wfWAFStorageFile->saveConfig('livewaf') #2 {main} thrown in /home/wekjriusd1/public_html/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php on line 35