亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > CMS > Wordpress > 正文

給WordPress添加主題管理選項

2024-09-07 00:52:11
字體:
來源:轉載
供稿:網友

默認的wordpress博客不具備主題管理選項了,如果我們要添加此功能需要對它進行二次開發了,下面一起來看一個例子。

做WordPress主題的時候,經常需要給主題添加管理選項,以便給主題用戶提供一些自定義的設置,免得改主題源代碼。網上已經有很多人分享了相關的教程,昨晚寫代碼的時候突然要用到這個功能,但是搜了好多版本,僅發現還是NeoEase的版本最順手,鑒于NeoEase的網站經常打不開了,有時候想看也看不了,本文純做記錄,方便以后查閱。

NeoEase的版本是屬于簡易版的,僅支持簡單的文本框、選項等功能,如果需要搭建帶酷炫的拖動等強大功能的選項頁面,可以看看本文末尾推薦的主題管理選項框架。

以下內容轉自 NeoEase

為主題添加一些管理選項并不是難事,你只要回寫完第一個選項處理,其他選項的處理就迎刃而解了。我們這次用 WordPress 自帶的主題 classic 作為例子,創建一個首頁公告欄的管理選項. 本教程需要一定的 HTML 基礎,并對 PHP 有初步了解.

后臺處理:

首先,我們要修改 function.php,主要的處理工作都在這個文件里面,如果主題沒有這個文件,就創建一個吧。 (沒有 function.php 說明主題不支持 Widget,可不是一個好習慣哦,還是趕緊新建一個吧,想讓主題支持 Widget 可以看看這里: 讓主題支持 Widget).

我的處理包括 3 大塊: 獲取選項,初始化,標簽頁操作界面。這里只創建一個公告欄,包括兩個選項 (是否顯示公告欄和公告欄內容)。如果要添加更多選項,也只需要代碼中 3 個 TODO 的位置上追加一些代碼而已。當然,你還需要改一下選項名稱,將 Classic 和 classic 全部之換掉.

  1. <?php 
  2.  
  3. /** 
  4.  
  5.  * 選項組類型 
  6.  
  7.  */ 
  8.  
  9. class ClassicOptions { 
  10.  
  11.    
  12.  
  13.     /* -- 獲取選項組 -- */ 
  14.  
  15.     function getOptions() { 
  16.  
  17.         // 在<a href="/database/database.html" target="_blank">數據庫</a>中獲取選項組 
  18.  
  19.         $options = get_option('classic_options'); 
  20.  
  21.         // 如果數據庫中不存在該選項組,設定這些選項的默認值,并將它們插入數據庫 
  22.  
  23.         if (!is_array($options)) { 
  24.  
  25.             $options['notice'] = false; 
  26.  
  27.             $options['notice_content'] = ''
  28.  
  29.             // TODO: 在這里追加其他選項 
  30.  
  31.             update_option('classic_options'$options); 
  32.  
  33.         } 
  34.  
  35.         // 返回選項組 
  36.  
  37.         return $options
  38.  
  39.     } 
  40.  
  41.    
  42.  
  43.     /* -- 初始化 -- */ 
  44.  
  45.     function init() { 
  46.  
  47.         // 如果是 POST 提交數據,對數據進行限制,并更新到數據庫 
  48.  
  49.         if(isset($_POST['classic_save'])) { 
  50.  
  51.             // 獲取選項組,因為有可能只修改部分選項,所以先整個拿下來再進行更改 
  52.  
  53.             $options = ClassicOptions::getOptions(); 
  54.  
  55.    
  56.  
  57.             // 數據限制 
  58.  
  59.             if ($_POST['notice']) { 
  60.  
  61.                 $options['notice'] = (bool)true; 
  62.  
  63.             } else { 
  64.  
  65.                 $options['notice'] = (bool)false; 
  66.  
  67.             } 
  68.  
  69.             $options['notice_content'] = stri<a href="/fw/photo.html" target="_blank">ps</a>lashes($_POST['notice_content']); 
  70.  
  71.    
  72.  
  73.             // TODO: 在這追加其他選項的限制處理 
  74.  
  75.    
  76.  
  77.             // 更新數據 
  78.  
  79.             update_option('classic_options'$options); 
  80.  
  81.    
  82.  
  83.         // 否則,重新獲取選項組,也就是對數據進行初始化 
  84.  
  85.         } else { 
  86.  
  87.             ClassicOptions::getOptions(); 
  88.  
  89.         } 
  90.  
  91.    
  92.  
  93.         // 在后臺 Design 頁面追加一個標簽頁,叫 Current Theme Options 
  94.  
  95.         add_theme_page("Current Theme Options""Current Theme Options"'edit_themes'basename(__FILE__), array('ClassicOptions''display')); 
  96.  
  97.     } 
  98.  
  99.    
  100.  
  101.     /* -- 標簽頁 -- */ 
  102.  
  103.     function display() { 
  104.  
  105.         $options = ClassicOptions::getOptions(); 
  106.  
  107. ?> 
  108.  
  109.    
  110.  
  111. <form action="#" method="post" enctype="multipart/form-data" name="classic_form" id="classic_form"
  112.  
  113.     <div class="wrap"
  114.  
  115.         <h2><?php _e('Current Theme Options''classic'); ?></h2> 
  116.  
  117.    
  118.  
  119.         <!-- 公告欄 --> 
  120.  
  121.         <table class="form-table"
  122.  
  123.             <tbody> 
  124.  
  125.                 <tr valign="top"
  126.  
  127.                     <th scope="row"
  128.  
  129.                         <?php _e('Notice''classic'); ?> 
  130.  
  131.                         <br/> 
  132.  
  133.                         <small style="font-weight:normal;"><?php _e('HTML enabled''classic') ?></small> 
  134.  
  135.                     </th> 
  136.  
  137.                     <td> 
  138.  
  139.                         <!-- 是否顯示公告欄 --> 
  140.  
  141.                         <label> 
  142.  
  143.                             <input name="notice" type="<a href="/tags.php/checkbox/" target="_blank">checkbox</a>" value="checkbox" <?php if($options['notice']) echo "checked='checked'"; ?> /> 
  144.  
  145.                              <?php _e('Show notice.''classic'); ?> 
  146.  
  147.                         </label> 
  148.  
  149.                         <br/> 
  150.  
  151.                         <!-- 公告欄內容 --> 
  152.  
  153.                         <label> 
  154.  
  155.                             <<a href="/tags.php/textarea/" target="_blank">textarea</a> name="notice_content" cols="50" rows="10" id="notice_content" style="width:98%;font-size:12px;" class="code"><?php echo($options['notice_content']); ?></textarea> 
  156.  
  157.                         </label> 
  158.  
  159.                     </td> 
  160.  
  161.                 </tr> 
  162.  
  163.             </tbody> 
  164.  
  165.         </table> 
  166.  
  167.    
  168.  
  169.         <!-- TODO: 在這里追加其他選項內容 --> 
  170.  
  171.    
  172.  
  173.         <!-- 提交按鈕 --> 
  174.  
  175.         <p class="submit"
  176.  
  177.             <input type="submit" name="classic_save" value="<?php _e('Update Options &raquo;', 'classic'); ?>" /> 
  178.  
  179.         </p> 
  180.  
  181.     </div> 
  182.  
  183.    
  184.  
  185. </form> 
  186.  
  187.    
  188.  
  189. <?php 
  190.  
  191.     } 
  192.  
  193. //Vevb.com 
  194.  
  195. /** 
  196.  
  197.  * 登記初始化方法 
  198.  
  199.  */ 
  200.  
  201. add_action('admin_menu'array('ClassicOptions''init')); 
  202. ?> 

前臺處理:

要公告欄在首頁上顯示,需要修改一下 index.php,這個比較簡單,只是通過一些判斷語句決定東西要不要顯示出來而已,當然,你可以進行其他操作,關鍵是獲取到選項的值,并對它們進行處理.

其實可以分為兩步:

獲取選項,對每個 PHP 文件,獲取一次就行了,可以在文件頂部執行,對選項進行處理,這里判斷成立的話就將公告內容顯示出來.

  1. <!-- 獲取選項 --> 
  2.  
  3. <?php $options = get_option('classic_options'); ?> 
  4.  
  5. <!-- 如果用戶選擇顯示公告欄,并且公告欄有內容,則顯示出來 --> 
  6.  
  7. <?php if($options['notice'] && $options['notice_content']) : ?> 
  8.  
  9.     <div id="notice"
  10.  
  11.         <div class="content"><?php echo($options['notice_content']); ?></div> 
  12.  
  13.     </div> 
  14.  
  15. <?php endif; ?> 

使用后臺選項開發框架,可以添加更復雜更強大的選項設置.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久精品免费| 日韩久久免费视频| 亚洲国产成人久久综合一区| 亚洲xxxxx电影| 日韩高清电影免费观看完整| 成人h视频在线| 欧美一级在线播放| 国产亚洲激情视频在线| 国模吧一区二区三区| 成人信息集中地欧美| 久热精品视频在线免费观看| 精品中文字幕在线| 中文字幕亚洲色图| 国产成人极品视频| 欧美一区二粉嫩精品国产一线天| 91精品久久久久久久久久另类| 亚洲国语精品自产拍在线观看| 欧美亚洲午夜视频在线观看| 欧美激情免费看| 精品国偷自产在线视频| 欧洲s码亚洲m码精品一区| 欧美夫妻性生活xx| 亚洲视频精品在线| 91高清视频在线免费观看| 曰本色欧美视频在线| 高清一区二区三区四区五区| 国产欧美精品一区二区三区介绍| 国产亚洲精品91在线| 亚洲视频自拍偷拍| 久久久人成影片一区二区三区| 亚洲精品久久久久久久久久久| 91在线视频免费| 国产综合香蕉五月婷在线| 亚洲成人免费在线视频| 欧美电影免费观看高清完整| 久久久免费av| 国产综合福利在线| 日韩久久精品电影| 欧美国产高跟鞋裸体秀xxxhd| 精品国产乱码久久久久久婷婷| 自拍偷拍亚洲区| 国产aⅴ夜夜欢一区二区三区| 国产一区二区美女视频| 欧美国产高跟鞋裸体秀xxxhd| 亚洲影影院av| 欧美天堂在线观看| 精品国产一区二区三区久久狼黑人| 久久天天躁狠狠躁夜夜爽蜜月| 色综合色综合网色综合| 97视频com| 91网站在线免费观看| 久久久久久亚洲| 亚洲精品二三区| 国产精品自产拍在线观看| 国产大片精品免费永久看nba| 精品网站999www| 国产欧美久久久久久| 精品视频在线观看日韩| 欧美激情区在线播放| 日韩免费观看av| 欧美最猛性xxxxx亚洲精品| 亚洲欧美日韩爽爽影院| 色av中文字幕一区| 日韩在线免费视频| 国产精品电影久久久久电影网| 青青在线视频一区二区三区| 亚洲天堂av女优| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲欧美制服中文字幕| 亚洲午夜精品久久久久久性色| xxx欧美精品| 国自产精品手机在线观看视频| 亚洲成人av资源网| 亚洲精品日韩丝袜精品| 国产精品极品美女在线观看免费| 欧美成人午夜影院| 亚洲一区二区三区777| 日韩美女在线播放| 中文字幕精品一区久久久久| 不卡毛片在线看| 日韩精品视频在线播放| 红桃视频成人在线观看| 亚洲男人天堂古典| 伊人久久久久久久久久久久久| 日韩精品免费视频| 日韩成人中文电影| 精品国产一区二区三区四区在线观看| 亚洲资源在线看| 97视频在线免费观看| 久久久国产一区| 日韩欧美成人精品| 国产成人高潮免费观看精品| 成人激情av在线| 亚洲人成啪啪网站| 黄色一区二区在线观看| 亚洲大胆美女视频| 欧美华人在线视频| 成人黄色生活片| 51色欧美片视频在线观看| 亚洲免费一在线| 久久琪琪电影院| 精品美女永久免费视频| 日韩欧美有码在线| 欧美激情一区二区久久久| 欧美日韩在线视频首页| 亚洲欧美精品中文字幕在线| 亚洲色图偷窥自拍| 久久影视三级福利片| 久久久91精品国产| 91国内产香蕉| 国产精品旅馆在线| 久久久国产在线视频| 26uuu国产精品视频| 国产精品旅馆在线| 欧美成人免费在线观看| 亚洲国产欧美精品| 日韩中文字幕网| 亚洲高清色综合| 亚洲最新av在线| 伊人成人开心激情综合网| 久久91亚洲精品中文字幕| 久久视频国产精品免费视频在线| 国产精品日韩久久久久| 欧美性猛交xxxx久久久| 日韩av综合网| 欧美福利视频在线观看| 视频直播国产精品| 欧美疯狂做受xxxx高潮| 91免费看国产| 亚洲小视频在线| 日韩av网站在线| 亚洲国产成人在线视频| 裸体女人亚洲精品一区| 久久99视频精品| 亚洲国产精品高清久久久| xxxx性欧美| 久久久久久久999| 久久久久久久久亚洲| 综合网中文字幕| 国色天香2019中文字幕在线观看| 久久人体大胆视频| 欧美大码xxxx| 国产一区二区三区四区福利| 久久在精品线影院精品国产| 日韩欧美高清视频| 最好看的2019年中文视频| 精品美女久久久久久免费| 久久精品国产亚洲精品2020| 国产精品久久久久久久久久久久| 91美女片黄在线观看游戏| 国产区亚洲区欧美区| 亚洲国产黄色片| 538国产精品一区二区免费视频| xxav国产精品美女主播| 国产精品久久中文| 亚洲第一av在线| 91高清视频免费| 久久亚洲精品中文字幕冲田杏梨| 亚洲天堂av网| 亚洲精品一区二区网址| 国产精品久久久久久中文字| 中文字幕av一区二区| 搡老女人一区二区三区视频tv| 欧美高清在线观看|