久久精品国产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://m.kartiktrivedi.com/277333.html

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

    亚洲制服av| 国产农村妇女精品一区二区| 亚洲欧美国产精品桃花| 国产午夜亚洲精品不卡| 欧美激情一区三区| 久久一区二区三区国产精品| 亚洲网站在线| 日韩一区二区福利| 原创国产精品91| 国产一区二区按摩在线观看| 欧美日韩在线大尺度| 欧美成人视屏| 美国十次成人| 久久国产精品色婷婷| 午夜视频久久久| 亚洲一区二区三区中文字幕| 日韩亚洲精品电影| 91久久精品视频| 亚洲国产高清一区| 亚洲第一成人在线| 亚洲大胆视频| 在线观看亚洲视频啊啊啊啊| 欧美激情中文字幕乱码免费| 欧美中文字幕视频在线观看| 亚洲欧美一区二区原创| av成人黄色| 一区二区三区免费观看| 9l国产精品久久久久麻豆| 亚洲精品三级| 日韩午夜激情| 亚洲影院免费| 亚洲欧美中文另类| 欧美伊人久久大香线蕉综合69| 欧美一二区视频| 久久成人精品| 蜜臀av性久久久久蜜臀aⅴ| 免费国产自线拍一欧美视频| 美国成人毛片| 欧美日韩三级电影在线| 国产精品电影网站| 国产精品一区二区三区久久久| 国产精品久久久久久影院8一贰佰 国产精品久久久久久影视 | 性欧美在线看片a免费观看| 亚洲制服av| 久久精品视频亚洲| 蜜桃av噜噜一区| 欧美日一区二区三区在线观看国产免 | 亚洲大胆人体在线| 亚洲国产一区在线| 在线视频亚洲欧美| 香蕉成人伊视频在线观看| 欧美一级久久久| 欧美大尺度在线观看| 国产精品jizz在线观看美国| 国产精品亚洲欧美| 国产日韩在线一区二区三区| 亚洲国产精品成人| 一区二区三区日韩欧美精品| 午夜精品久久久久久久久久久| 久久国产精品亚洲77777| 欧美gay视频| 国产精品久久久久久久午夜 | 激情欧美丁香| 在线亚洲欧美专区二区| 久久精品日韩| 欧美午夜不卡| 最新国产乱人伦偷精品免费网站| 亚洲在线观看免费| 欧美xart系列高清| 国产日韩欧美高清| 日韩视频中文字幕| 另类春色校园亚洲| 国产日韩专区| 亚洲男女自偷自拍| 欧美日韩精品欧美日韩精品 | 亚洲精品乱码久久久久久按摩观| 欧美一二三区精品| 国产精品久久91| 亚洲日本无吗高清不卡| 久久深夜福利免费观看| 国产精品欧美一区二区三区奶水| 亚洲激情午夜| 久久五月婷婷丁香社区| 国产欧美一区二区三区在线老狼| 亚洲精品美女久久久久| 免费在线看一区| 影音先锋中文字幕一区| 久久久久一本一区二区青青蜜月| 国产精品自在欧美一区| 一区二区日韩免费看| 欧美黄色片免费观看| 精品96久久久久久中文字幕无| 性欧美videos另类喷潮| 国产欧美日韩一区二区三区在线观看 | 欧美激情精品久久久| 国产一区二区福利| 欧美亚洲视频一区二区| 国产精品v亚洲精品v日韩精品| 最新日韩av| 欧美久久久久久久久| 亚洲精品免费在线观看| 欧美激情欧美激情在线五月| 亚洲激情女人| 欧美精品成人一区二区在线观看| 亚洲国产综合91精品麻豆| 欧美国产日韩一区二区三区| 亚洲精品免费电影| 国产精品成人v| 欧美一区免费视频| 国产一级一区二区| 蜜桃久久精品乱码一区二区| 亚洲国产精品va在线看黑人动漫 | 欧美激情一区二区三区在线视频| 亚洲精品看片| 国产精品久久久久aaaa九色| 亚洲在线国产日韩欧美| 国产精品资源在线观看| 欧美诱惑福利视频| 亚洲激情一区| 国产乱码精品1区2区3区| 久久精品亚洲国产奇米99| 亚洲黄网站在线观看| 欧美日韩免费| 久久九九热re6这里有精品| 亚洲精品国久久99热| 国产精品久久精品日日| 久久一区二区三区av| 在线亚洲观看| 亚洲大胆av| 国产亚洲毛片在线| 欧美日韩久久精品| 久久久久国产一区二区三区| 亚洲片在线观看| 国产亚洲综合性久久久影院| 欧美极品在线观看| 久久久天天操| 亚洲专区在线| 亚洲乱码日产精品bd| 国产一级一区二区| 欧美日韩中文字幕精品| 久久精品国产清高在天天线| 99精品视频一区| 在线精品国产成人综合| 国产精品亚洲综合一区在线观看| 久久色在线观看| 欧美一区二区视频免费观看 | 欧美日韩一区在线视频| 欧美mv日韩mv亚洲| 久久成年人视频| 亚洲欧美视频在线观看视频| 亚洲免费激情| 亚洲精品一区二区三区蜜桃久| 国语自产精品视频在线看一大j8| 国产精品揄拍一区二区| 欧美日韩国产黄| 欧美电影免费| 欧美国产大片| 欧美激情一区二区三区在线视频| 久久免费99精品久久久久久| 久久av在线看| 久久久99国产精品免费| 午夜精品视频网站| 午夜在线成人av| 亚洲欧美中文字幕| 欧美一级网站| 久久精品99无色码中文字幕| 亚洲欧美制服另类日韩| 亚洲欧美日韩国产中文| 亚洲一区免费视频| 国产精品99久久99久久久二8| 99国产麻豆精品| 在线视频精品一区| 亚洲欧美国产不卡| 欧美在线免费视频| 老鸭窝毛片一区二区三区 | 亚洲激情视频在线观看| 亚洲激情亚洲| 亚洲图片在线| 欧美在线观看视频在线| 久久精品日韩| 欧美国产日本在线| 国产精品www.| 国产午夜精品全部视频播放| 一区视频在线播放| 99精品欧美一区| 欧美一区二区三区视频免费播放| 久久国产精品久久国产精品| 美女主播一区| 欧美日韩在线一区二区三区| 国产精品高清在线| 国内揄拍国内精品少妇国语| 亚洲福利在线看| av成人福利| 久久精品一区二区三区不卡牛牛 | 亚洲另类在线视频| 亚洲欧美另类久久久精品2019| 久久精品成人欧美大片古装| 欧美肥婆在线| 国产区精品在线观看| 亚洲人成绝费网站色www|