サポート » 使い方全般 » 管理画面の文字をいろいろ置換したい

  • 解決済 Hidekazu Ishikawa

    (@kurudrive)


    管理画面についてとりあえず今回下記の2点をしようと思っています。

    【1】画面左のメニューの文字を置換したい。
    【2】ダッシュボード画面の「ダッシュボード」の文字を変更したい。

    【1】については、管理画面のメニューをカスタマイズするプラグインはありますが、なるべくプラグインは使いたくないのと、どのみち【2】が実現出来ないので、なんとかコードを書いてうまく出来ないかなと思っています。

    そこで下記のようなコードでjavascriptで書き換えようとしました。

    function adminTxtReplace(){
    	echo'
    <script type="text/javascript">
    //<![CDATA[
    window.onload=adminTxtReplace
    function adminTxtReplace(){
    	document.body.innerHTML = document.body.innerHTML.replace(/\<h2\>ダッシュボード\<\/h2\>/g, "\<h2\>管理画面HOME\<\/h2\>");
    }
    //]]>
    </script>';
    }
    add_action('admin_head', 'adminTxtReplace', 20);

    これだと一応書き換えれられるのですが、
    管理画面で使っている他のプラグインの動作がおかしくなってしまいます。
    (Trust Form でドラッグ&ドロップが出来ないなど)

    多分何かjavascriptが干渉していたり読み込み順などの都合だと思うのですが、
    何分知識不足でわかりません…orz

    どなたかアドバイスいただけると助かります。

    ちなみによくわからないのでjsで置換しようとしただけで、
    フックとかで出来るならそういった方法でも構いません。

    何卒お力添えいただけると助かります。

    よろしくお願いいたします。 m(TーT)m

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • トピック投稿者 Hidekazu Ishikawa

    (@kurudrive)

    追伸:
    置換したい部分が¥が\に変換されてしまいましたが結局のところ

    /ダッシュボード/ → /スペシャルダッシュボード/

    という感じに置換出来ればOKです(・w・;

    以下のような感じで翻訳のテキストを置換してやれば自由自在です。

    add_filter('gettext', 'change_post_to_article');
    add_filter('gettext_with_context', 'change_post_to_article');
    add_filter('ngettext', 'change_post_to_article');
    add_filter('ngettext_with_context', 'change_post_to_article');
    
    function change_post_to_article($translated) {
        $translated = str_ireplace(
            'ダッシュボード',
            'スペシャルダッシュボード',
            $translated
        );
        return $translated;
    }

    投稿フォーマットをハックしてWordPressでプレスリリース!

    トピック投稿者 Hidekazu Ishikawa

    (@kurudrive)

    なるほど、翻訳の文字を置換処理して返すんですね。
    ありがとうございます!

    モデレーター Takuro Hishikawa

    (@hissy)

    画面左の件のみ

    `function my_change_post_menu_label() {
    global $menu;
    foreach ( $menu as $key => $value ) {
    dbgx_trace_var($value[0]);
    if ( $value[0] == ‘ダッシュボード’ ) {
    $menu[$key][0] = ‘スーパーダッシュボード’;
    }
    }
    }
    add_action( ‘admin_menu’, ‘my_change_post_menu_label’ );

    モデレーター Takuro Hishikawa

    (@hissy)

    きゃーカブった!

    トピック投稿者 Hidekazu Ishikawa

    (@kurudrive)

    参考までに先程Miyauchiさんから 置換場所が多い場合は速度も落ちるので、下記のように読み込むmoファイル自体をfunctions.phpで差し替えるという技を教えていただきました。

    https://gist.github.com/2862420

    > ひっしーさん

    なるほど、メニューだけだとそういうやり方もあるんですな(・w・b
    ありがとうございます!

    後はきっと更に親切な人がjQueryでの置換も書いてくれるハズ・・・。

    dbgx_trace_var($value[0]);

    ヒッシーのコードデバッグバーの関数入ってもうとるで

    kurudriveさん

    add_action(‘admin_head’, ‘adminTxtReplace’, 20);

    add_action(‘admin_head-index.php’, ‘adminTxtReplace’, 20);

    にすれば、ダッシュボードの画面のみでadminTxtReplaceのjsが実行されるので、kurudriveさんのコードで行けますよ。

    トピック投稿者 Hidekazu Ishikawa

    (@kurudrive)

    horikeさん

    うぉ!ありがとうございます。

    みなさん有難うございました! m(TーT)m

    add_action( 'admin_head-index.php', 'change_dashboard_h2' );
    function change_dashboard_h2() {
        echo '
        <script type="text/javascript">
            jQuery(document).ready(function($){
    	    $("#icon-index").next("h2").text("スーパーダッシュボード");
            });
        </script>';
    }

    もう少しすっきり書くならこんな感じでも行けます

    トピック投稿者 Hidekazu Ishikawa

    (@kurudrive)

    horikeさん

    お礼書いてませんでした。有難うございます!
    javascriptの知識が無さすぎで恐縮ですが、
    おかげ様でなんとなくわかってきました!

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • トピック「管理画面の文字をいろいろ置換したい」には新たに返信することはできません。