3

WordPress の [設定] > [全般] ページに入力ボックス「ロゴ URL」を追加するプラグインを作成しました。この入力は呼び出すことができ、正しく機能します。「ロゴ URL」を取得し、パスを適用してログイン画面の画像を取得する別のプラグインを作成しました。すべてが桃色に見えます。

私が抱えている唯一の問題は、[設定] > [全般] ページの [ロゴ URL] を [サイト アドレス (URL)] の下に移動したいということです。これを行う方法がわかりません。私はウェブを精査しましたが、役立つ答えを見つけることができませんでした.

現在、元の一般ページを削除して新しい一般ページを追加していますが、正しい options-general.php を解析する方法がわかりません。

一般ページで 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 . '" />';
    }
}
4

1 に答える 1

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_footerおよびでのフック名の使用にadmin_headも注意してください。

あなたのフィールドはページがロードされた後にのみ変更されるため、「ジャンプ」に気付くことができます。それを滑らかにするために、次を使用できます。

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

そして、このjQueryを後に追加しreplaceWith()ます:

$('#wpbody .wrap form').fadeIn('slow');
于 2013-10-03T23:41:10.947 に答える