WordPress 後台上傳自訂網站Logo

來源:互聯網
上載者:User

標籤:

需求:眾所周知一般網站的logo都是固定的所以我在做網站時也是使用的靜態logo檔案,但最近用wp給一個客戶做的網站時,因為網站現在的logo可能會需要重新設計,所以客戶提出了需要在後台可以自己修改網站logo,接收需求後就在網路上找如何解決,但找了一圈都沒有找到想要的效果(都是如何修改wp的登入logo),還好找到兩篇相關的文章,最後根據這兩篇文章自己Codeing最終實現了功能代碼:1.在function中添加以下代碼
 
  1. <?php
  2. /**在function中添加以下代碼
  3. * WordPress 添加額外選項欄位到常規設定頁面
  4. * http://www.wpdaxue.com/add-field-to-general-settings-page.html
  5. */
  6. $new_general_setting = new new_general_setting();
  7. class new_general_setting {
  8. function new_general_setting( ) {
  9. add_filter( ‘admin_init‘ , array( &$this , ‘register_logo‘ ) );
  10. }
  11. function register_logo(){
  12. //需要‘js/uploader.js組件
  13. wp_enqueue_script( ‘fli-upload-js‘, $this->url . ‘js/uploader.js‘, array( ‘jquery‘, ‘media-upload‘, ‘thickbox‘ ) );
  14. wp_enqueue_style( ‘thickbox‘ );
  15. wp_enqueue_style( ‘fli-upload-css‘, $this->url . ‘css/uploader.css‘ );
  16. register_setting( ‘general‘, ‘logo‘, ‘esc_attr‘ );
  17. add_settings_field(‘logo‘, ‘<label for="logo">‘.__(‘網站Logo‘ ).‘</label>‘ , array(&$this, ‘logo_fields_html‘) , ‘general‘ );
  18. }
  19. function logo_fields_html() {
  20. $value = get_option( ‘logo‘, ‘‘ );
  21. echo ‘<input type="text" class="regular-text ltr" id="logo" name="logo" maxlength="200" value="‘. $value .‘" readonly/> <input type="button" id="general_logo" class="button insert-media add_media" value="上傳">‘;
  22. }
  23. }
  24. // 自訂後台Css和Js
  25. add_action( ‘admin_enqueue_scripts‘, ‘myAdminScripts‘ );
  26. function myAdminScripts() {
  27. //主題下載入admin.js
  28. wp_register_script( ‘default‘, get_template_directory_uri() . ‘/admin.js‘, array(), ‘‘, ‘all‘ );
  29. wp_enqueue_script( ‘default‘ );
  30. wp_register_style( ‘default‘, get_template_directory_uri() . ‘/admin.css‘, array(), ‘‘, ‘all‘ );
  31. wp_enqueue_style( ‘default‘ );
  32. }
  33. ?>
2.在主題admin.js中添加代碼
 
  1. options_general();
  2. //在常規選項頁面添加自訂資訊
  3. function options_general () {
  4. if(!Islocatl_pathname(‘options-general.php‘))return;
  5. //點擊上傳按鈕或input元素時開啟上傳視窗
  6. jQuery(‘#general_logo,#logo‘).click(function() {
  7. //開啟上傳視窗需要js/uploader.js組件
  8. tb_show(‘‘, ‘media-upload.php?type=image&TB_iframe=true‘);
  9. return false;
  10. });
  11. //圖片上傳頁面回傳
  12. //html:為選擇的圖片元素
  13. window.send_to_editor = function(html) {
  14. imgurl = jQuery(html).attr(‘src‘);
  15. // 儲存值並寫入optuions表
  16. jQuery(‘#logo‘).val(imgurl);
  17. //刪除圖片上傳視窗
  18. tb_remove();
  19. return false;
  20. } //end send_to_editor
  21. }
  22. //當前頁面是否是指定的頁面
  23. function Islocatl_pathname (pathname) {
  24. return location.pathname.indexOf(pathname)>=0;
  25. }//end 當前頁面是否是指定的頁面


參考:進階教程(三十四):調用新版的媒體中心上傳圖片
定製和使用WordPress圖片上傳功能
WordPress 添加額外選項欄位到常規設定頁面


來自為知筆記(Wiz)

WordPress 後台上傳自訂網站Logo

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.