2013-10-03 48 views
2

我已經創建了一個插件,在WordPress的設置>常規頁面上添加一個輸入框'Logo URL'。這個輸入可以被調用並且工作正常。我創建了另一個插件來拉動'徽標URL'並應用路徑爲登錄屏幕拉取圖像。一切都顯得桃色。在WordPress常規設置頁面訂購輸入字段

我遇到的唯一問題是我想將「設置」>「常規」頁面上的「徽標URL」移動到「網站地址(URL)」下方。我對如何做到這一點感到不知所措。我瀏覽了網頁並找不到有用的答案。

我目前正在刪除原始的常規頁面並添加一個新的常規頁面,但我不確定如何解析正確的選項general.php。

如何將General_page上的Logo_URL更高?

/** 
    * This is the code to create the Settings box on the Settings > General 
    */  
$new_general_setting = new new_general_setting(); 

class new_general_setting { 
    function new_general_setting() { 
     add_filter('admin_init' , array(&$this , 'register_fields')); 
    } 
    function register_fields() { 
     register_setting('general', 'URL_logo', 'esc_attr'); 
     add_settings_field('URL_logo', '<label for="URL_logo">'.__('Website  logo (URL)' , 'URL_logo').'</label>' , array(&$this, 'fields_html') , 'general'); 
    } 
    function fields_html() { 
     $value = get_option('URL_logo', ''); 
     echo '<input type="text" id="URL_logo" name="URL_logo" value="' .  $value . '" />'; 
    } 
} 
+0

可以刪除PHP 4的語法,'&$ this'簡直是'$ this'。 – brasofilo

+0

謝謝。我改變了它。這是否改變了任何功能?就像我說的,我有0個編碼經驗。我只是把我在互聯網上找到的東西拼湊起來,並試圖按照我想要的方式工作。 – user1143822

+0

WP需要PHP 5.2.4+。忘記互聯網吧,你會在這裏和[wordpress.se]找到很多很酷的東西;)哦,是的,對於http://sscce.org的問題很感激,這幾天很難見到...... – brasofilo

回答

1

不,沒有辦法在本地訂購。 WordPress首先打印它的東西,然後我們的。它必須用jQuery完成。

add_action('admin_footer-options-general.php', function() 
{ 
    ?> 
    <script type="text/javascript"> 
    jQuery(document).ready(function($) 
    { 
     var son = $("label[for='URL_logo']").parent().parent(); // Our setting field 
     var father = $("label[for='home']").parent().parent(); // WordPress setting field 
     son.insertAfter(father); 
    }); 
    </script> 
    <?php 
}); 

推薦的方法是將JS排入行動呼叫"admin_print_scripts-$hookname"。請注意掛鉤名稱也在admin_footeradmin_head中使用。

由於您的字段只在頁面加載後發生變化,我們可以注意到「跳轉」。爲了順利的話,我們可以使用:

add_action('admin_head-options-general.php', function() 
{ 
    echo '<style>#wpbody .wrap form{display:none}</style>'; 
}); 

而且replaceWith()之後添加這個jQuery:

$('#wpbody .wrap form').fadeIn('slow'); 
+0

只要我得到足夠的代表,我會給你一個贊成!這工作很好!謝謝! 我剛剛注意到這實際上是用logo的URL替換了網站的URL。有沒有辦法讓它插入而不是替換? – user1143822

+0

它不是replaceWith,insertAfter做這個工作。 – brasofilo

+0

你太棒了。非常感謝! – user1143822