久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

01:講透WordPress 菜單開發 - 在菜單中添加Tab選項卡

本節詳細介紹了在頂級菜單中實現 Tab 切換選項卡的每一步實現的思路,大家可以據此,寫出在子菜單中添加 Tab 切換選項卡功能。

在上一節中,我們學習了如何在 WordPress 中添加菜單的操作,包括頂級菜單、子菜單、默認菜單下的子菜單等。

相信你已經可以按照自己的實際需求添加菜單了。

本文主要解決如何在菜單中添加 Tab 選項卡的問題。

問題詳解

若單一菜單中內容過多,加子菜單又嫌麻煩,可嘗試添加本節介紹的 Tab 選項卡菜單。

他可以在當前頁面中展示多個選項卡,可以很方便的在當前菜單頁面中的各個 Tab 選項卡中進行切換,效果如下:

01:講透WordPress 菜單開發 - 在菜單中添加Tab選項卡

流程和幫助

流程如下

01:講透WordPress 菜單開發 - 在菜單中添加Tab選項卡

感謝以下文章的幫助

添加菜單

根據上一節的內容,我們先添加一個頂級菜單,在當前使用主題的 functions.php 文件底部添加以下內容

//創建一個Demo菜單
function demo_create_menu_page()
{
    add_menu_page(
        'Demo選項',                   // 此菜單對應頁面上顯示的標題
        'Demo',                      // 要為此實際菜單項顯示的文本
        'administrator',             // 哪種類型的用戶可以看到此菜單
        'demo_id',                   //  此菜單項的唯一ID(即段塞)
        'demo_menu_page_display',    // 呈現此頁面的菜單時要調用的函數的名稱
        'dashicons-smiley',          //圖標 - 默認圖標
        '600.1',                     //位置
    );
} // end vuespa_create_menu_page 
add_action('admin_menu', 'demo_create_menu_page');

//Demo菜單的回調
function demo_menu_page_display()
{
?>
    <div class="wrap">
    Npcink
    </div><!--/wrap-->
<?php
}

接下來的內容,就是圍繞這個菜單回調函數 demo_menu_page_display() 來操作的。

添加選項卡

WordPress 準備好了一套默認的樣式,我們直接使用即可。在回調函數中添加以下內容

<h2 class="nav-tab-wrapper">
    <a href="?page=demo_id&tab=display_options" class="nav-tab">Display Options</a>
    <a href="?page=demo_id&tab=social_options" class="nav-tab">Social Options</a>
</h2>

這里,我們手動構造了兩個選項卡和選項卡的鏈接,通過點擊不同的選項卡,觸發不同的鏈接。

注意 demo_id 部分,這里是用的頂級菜單的slug 的,需要注意憑借這個,才能找到我們需要的內容

菜單切換

為了知道當前是哪個選項卡,我們需要添加以下函數

<?php
if( isset( $_GET[ 'tab' ] ) ) {
    $active_tab = $_GET[ 'tab' ];
} // end if 
?>    

編寫一個條件來檢查是否設置了查詢字符串值,如果是,則將其存儲在變量中。

然后,為了讓用戶知道當前所在的菜單,我們需要進行判斷,

  • 若當前的 Tab 的值 是當前菜單,顯示選中狀態。
  • 若當前的 Tab 的值 不是當前菜單,顯示未選中狀態。

修改上面的選項卡內容

<h2 class="nav-tab-wrapper">
    <a href="?page=demo_id&tab=display_options" class="nav-tab <?php echo $active_tab == 'display_options' ? 'nav-tab-active' : ''; ?>">Display Options</a>
    <a href="?page=demo_id&tab=social_options" class="nav-tab <?php echo $active_tab == 'social_options' ? 'nav-tab-active' : ''; ?>">Social Options</a>
</h2>

WordPress 也提供了對應的樣式,這里,我們通過三元運算符實現樣式切換。

若當前鏈接顯示的是當前菜單選項,則添加樣式 nav-tab-active

然后,初次進入菜單時,我們是拿不到 Tab 選項內容的,此時,用戶還沒有點擊我們構造的鏈接。

這里需要設置一個默認展示的菜單。

$active_tab = isset( $_GET[ 'tab' ] ) ? $_GET[ 'tab' ] : 'display_options';

這樣,在初次進入菜單頁面時,如果拿不到 Tab 的值,就展示菜單 display_options 的值。

內容切換

完成了菜單切換,我們還需要切換內容的顯示,不同的菜單對應不同的內容。

我們添加以下代碼

<?php
            //根據當前 Tab 展示對應內容
            if ($active_tab == 'display_options') {
            ?>
                <h3>Npcink 放置需要展示的內容</h3>
            <?php
            } else {
            ?>
                <h3>Npcink 放置準備展示的函數</h3>
            <?php
                //展示設置字段和設置節

            } // end if/else
?>

通過簡單的 if 判斷,就能根據不同的菜單 Tab 展示不同的內容了。

當然,若您有興趣了解的話,可以查查什么是設置字段和設置節,

一般情況下,這塊的內容應該是這樣的

<form method="post" action="options.php">
            <?php
            //根據當前 Tab 展示對應內容
            if ($active_tab == 'display_options') {
            ?>
                <h3>Npcink 放置需要展示的內容</h3>
            <?php
                //展示設置字段和設置節
                settings_fields('sandbox_theme_display_options');
                do_settings_sections('sandbox_theme_display_options');
            } else {
            ?>
                <h3>Npcink 放置準備展示的函數</h3>
            <?php
                //展示設置字段和設置節
                settings_fields('sandbox_theme_social_options');
                do_settings_sections('sandbox_theme_social_options');
            } // end if/else

            //保存按鈕
            submit_button();

            ?>
        </form>

完整代碼

前面詳細介紹了每一步的作用,這里給出完整代碼,供大家參考

//創建一個Demo菜單
function demo_create_menu_page()
{
    add_menu_page(
        'Demo選項',                   // 此菜單對應頁面上顯示的標題
        'Demo',                      // 要為此實際菜單項顯示的文本
        'administrator',             // 哪種類型的用戶可以看到此菜單
        'demo_id',                   //  此菜單項的唯一ID(即段塞)
        'demo_menu_page_display',    // 呈現此頁面的菜單時要調用的函數的名稱
        'dashicons-smiley',          //圖標 - 默認圖標
        '600.1',                     //位置
    );
} // end vuespa_create_menu_page 
add_action('admin_menu', 'demo_create_menu_page');

//Demo菜單的回調
function demo_menu_page_display()
{
?>
    <div class="wrap">
    <!--標題-->
        <h2>
            <?php echo esc_html(get_admin_page_title()); ?>
        </h2>
        <!-- 在保存設置時調用 WordPress 函數以呈現錯誤. -->
        <?php settings_errors(); ?>

        <?php

        //檢查URL中是否存在名為 "tab" 的GET參數,并將其值分配給變量 $active_tab
        if (isset($_GET['tab'])) {
            $active_tab = $_GET['tab'];
        } // end if

        //設置默認值
        $active_tab = isset($_GET['tab']) ? $_GET['tab'] : 'display_options';
        ?>

        <!--這里的鏈接手動構造,注意,page=你填的菜單slug-->
        <h2 class="nav-tab-wrapper">
            <a href="?page=demo_id&tab=display_options" class="nav-tab <?php echo $active_tab == 'display_options' ? 'nav-tab-active' : ''; ?>">Display Options</a>
            <a href="?page=demo_id&tab=social_options" class="nav-tab <?php echo $active_tab == 'social_options' ? 'nav-tab-active' : ''; ?>">Social Options</a>
        </h2>



        <form method="post" action="options.php">
            <?php
            //根據當前 Tab 展示對應內容
            if ($active_tab == 'display_options') {
            ?>
                <h3>Npcink 放置需要展示的內容</h3>
            <?php
                //展示設置字段和設置節
                settings_fields('sandbox_theme_display_options');
                do_settings_sections('sandbox_theme_display_options');
            } else {
            ?>
                <h3>Npcink 放置準備展示的函數</h3>
            <?php
                //展示設置字段和設置節
                settings_fields('sandbox_theme_social_options');
                do_settings_sections('sandbox_theme_social_options');
            } // end if/else

            //保存按鈕
            submit_button();

            ?>
        </form>
    </div><!--/wrap-->
<?php
}

注意,因為我們沒有配置設置字段和設置節,所以,點擊保存按鈕會報錯,

為了專注,這里僅做拓展介紹,并不提供相關實現內容。

總結

這一節,我們詳細的介紹了菜單 Tab 切換的每一步,

您可以參考代碼,實現在子菜單中添加 Tab 選項內容。

下一節,我們分享如何對菜單進行權限控制,僅允許指定人員訪問,以及僅在指定菜單中加載 JS 資源。

最新文章

  • 后續文章持續撰寫中,點個關注,獲取平臺最新文章推送。
  • 技術有限,還望諸位協助勘誤,于評論區指出,
  • 常一文多發,最新勘定和增補文章于下方鏈接給出
  • http://www.kartiktrivedi.com/277333.html

給TA贊賞
共{{data.count}}人
人已贊賞
??
Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
?
購物車
優惠劵
搜索
久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    9000px;">

      日日夜夜一区二区| 6080午夜不卡| 欧美日韩精品系列| 国产精品久久久久久一区二区三区| 一二三区精品福利视频| caoporn国产精品| 国产精品女人毛片| 国产成人一区在线| 中文字幕巨乱亚洲| 成人午夜精品在线| 国产欧美精品在线观看| 国产成人av电影在线| 久久精品欧美一区二区三区不卡| 精油按摩中文字幕久久| 国产丝袜欧美中文另类| 成人网在线播放| 国产精品国产三级国产普通话99| 99久久精品一区二区| 亚洲电影激情视频网站| 日韩一区二区在线免费观看| 色婷婷久久99综合精品jk白丝| 日韩手机在线导航| 色丁香久综合在线久综合在线观看| 国产精品99久久久久久似苏梦涵| 麻豆一区二区99久久久久| 亚洲永久精品国产| 欧美韩国日本一区| 亚洲免费观看高清完整版在线观看| 久久先锋影音av鲁色资源网| 亚洲乱码精品一二三四区日韩在线| 日本韩国欧美三级| 亚洲一区二区三区四区在线观看| 色欧美88888久久久久久影院| 亚洲成人av福利| 国产精品国模大尺度视频| 欧美日韩亚洲综合一区二区三区| 国产综合久久久久影院| 污片在线观看一区二区| 中文字幕佐山爱一区二区免费| 亚洲.国产.中文慕字在线| 欧美日韩亚洲国产综合| 91蜜桃在线免费视频| 成人免费毛片片v| 国产精品综合二区| 国产亚洲精久久久久久| 日韩欧美一二区| 日韩欧美资源站| 日韩一区二区三区四区| 欧美一区二区三区性视频| 欧美午夜一区二区三区免费大片| 亚洲一二三区不卡| 欧美精品一区二区三| 欧美一区二区三区四区高清| 日本伦理一区二区| 91免费观看在线| 欧美性高清videossexo| 欧美亚洲一区三区| 欧美精品乱码久久久久久| 91精品麻豆日日躁夜夜躁| 精品久久久久久久久久久久包黑料 | 欧美日韩aaaaa| 日韩限制级电影在线观看| 日韩欧美国产高清| 久久久www成人免费毛片麻豆| 国产成人啪免费观看软件| 97精品久久久午夜一区二区三区| 91在线观看免费视频| 91老司机福利 在线| 91麻豆精品国产91久久久久久| 欧美岛国在线观看| 亚洲精品国产无天堂网2021| 亚洲成av人综合在线观看| 国产在线精品一区二区三区不卡| 99久久精品免费观看| 欧美色图一区二区三区| 久久精品夜色噜噜亚洲a∨| 亚洲国产中文字幕在线视频综合| 精品一区二区免费视频| 欧美日韩精品一二三区| 亚洲欧美色图小说| 国产传媒欧美日韩成人| 欧美日韩高清一区二区三区| 中文字幕一区二区三中文字幕| 日韩在线卡一卡二| 99精品国产视频| 久久久99精品久久| **欧美大码日韩| 久久久久久麻豆| 欧美日本在线一区| 欧美一区二区三区免费视频| 99久久综合99久久综合网站| 国产拍欧美日韩视频二区| 国内精品自线一区二区三区视频| 国产欧美va欧美不卡在线| 在线观看一区不卡| 亚洲电影视频在线| 午夜影院在线观看欧美| 亚洲一区二区在线观看视频| 日韩一区欧美一区| 国产精品久久久久永久免费观看 | 韩国av一区二区三区四区| gogo大胆日本视频一区| 26uuu另类欧美| 一区二区三区资源| 国产+成+人+亚洲欧洲自线| 久久综合色天天久久综合图片| 亚洲大片一区二区三区| 欧美综合天天夜夜久久| 亚洲免费资源在线播放| 日本韩国精品在线| 亚洲国产一区二区三区青草影视| 久久国产三级精品| 日韩一区二区免费电影| 欧美肥妇毛茸茸| 欧美大片在线观看| 国产一区二区中文字幕| 国产精品三级av在线播放| 99久久久国产精品| 国产精品天美传媒沈樵| 欧美日韩电影一区| 国产一区免费电影| 欧洲一区二区三区在线| 亚洲第一av色| 国产精品久久久久一区| 欧美日韩亚洲不卡| 成人爱爱电影网址| 婷婷丁香久久五月婷婷| 国产精品网曝门| 欧美一区二区三区的| 日韩精品色哟哟| 亚洲欧洲成人av每日更新| 欧洲视频一区二区| 国产成人99久久亚洲综合精品| 一区二区三区精品视频| 88在线观看91蜜桃国自产| 成人av在线播放网站| 国产欧美一区二区三区在线老狼| 国产自产v一区二区三区c| 337p粉嫩大胆噜噜噜噜噜91av| 国产成人久久精品77777最新版本| 亚洲免费在线观看视频| 精品国产乱码久久久久久图片| 盗摄精品av一区二区三区| 午夜精品免费在线观看| 久久久久久久国产精品影院| 51精品视频一区二区三区| 色综合久久久久久久| 色综合天天在线| 色999日韩国产欧美一区二区| 国产成人在线视频网站| 精品一区免费av| 精品一二三四在线| 精品一区二区三区欧美| 美女免费视频一区| 亚洲一区二区三区四区在线免费观看| 亚洲午夜一二三区视频| 亚洲v日本v欧美v久久精品| 亚洲第一精品在线| 午夜激情综合网| 一区二区成人在线| 日韩中文字幕不卡| 看片网站欧美日韩| 成人免费看的视频| 亚洲一二三四在线| 亚洲国产成人私人影院tom| 国产精品视频观看| 亚洲自拍偷拍麻豆| 国产精品夜夜嗨| 在线精品亚洲一区二区不卡| 国产伦精品一区二区三区视频青涩| 久久精品二区亚洲w码| 99久久精品免费看国产免费软件| 欧美日韩国产一二三| 中文字幕亚洲成人| 久久久久久久久久久久久女国产乱| 亚洲裸体在线观看| 日本一不卡视频| 欧美日韩一区不卡| 最近中文字幕一区二区三区| 国产精品全国免费观看高清 | 日韩精品一区在线| 亚洲品质自拍视频网站| 久久亚洲影视婷婷| 国产精品一卡二卡在线观看| 91国产免费观看| 自拍av一区二区三区| av亚洲产国偷v产偷v自拍| 欧洲精品一区二区| 国产精品嫩草99a| 成人av网站免费观看| 亚洲午夜精品17c| 欧美成人三级电影在线| 日韩欧美成人一区二区| 欧美一卡2卡三卡4卡5免费| 日韩一级黄色片| 精品99一区二区| 亚洲精品欧美激情| 久久av老司机精品网站导航| 色综合久久久久综合体桃花网| 日韩视频免费观看高清完整版在线观看|