サポート » 使い方全般 » ショートコード名を日本語にしたい

  • 解決済 oisit

    (@oisit)


    「勘定科目 科目名=”現金” 金額=”1,000″」
    のようなショートコードを作りたい場合、
    add_shortcodeの第1引数や対応する関数の属性名が日本語であってもいいのでしょうか。
    また日本語にする場合の注意点などご教示いただけたら幸いです。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • こんにちは

    function 投稿本文(){
    	the_content();
    }
    
    投稿本文();

    くらいなら、動くと思いますが、ショートコードだと、そもそもそれがショートコードだと評価しないんじゃないかと思います。

    自前でやるとすると、例えば、the_content フィルタなどで、記述パターンを検索して、置換するような関数を書くと、類似の事は出来ると思います。

    実際の例は、自分のテーマで恐縮ですが、

    https://wordpress.org/themes/raindrops/

    というテーマで

    新規投稿をしたときに

    投稿本文に以下のようなショートコードっぽい(でもショートこーではないんですが)コードを記述すると、ページの配色やカラム数を変更するという機能を付けています

    <!--[raindrops color_type="light" col="1"]-->

    これは、the_content フィルタで記述を検出して、配色などの変更をしています。
    日本語でも処理できると思います。

    結論から言えば日本語のショートコードは使えるようです。

    テスト用プラグイン

    <?php
    /*
    Plugin Name: Japanese Shortcode
    Description: 日本語名のショートコード
    */
    
    add_shortcode("タイトル","タイトル");
    function タイトル ($atts) {
      var_dump($atts);
      return get_the_title();
    }

    編集画面
    http://puu.sh/ipE7u/976aae0d17.png

    プレビュー
    http://puu.sh/ipE8J/b19fd8f41f.png

    (あ、属性はダメでしたね…)
    ショートコード検出正規表現みてもとりあえず問題なさそう。

    注意点としてはUTF-8であることを確認すること?

    トピック投稿者 oisit

    (@oisit)

    お二方ともレスありがとうございます。
    [会計仕訳]
    [仕訳行 借方科目=”” 借方金額=”” 貸方科目=”” 貸方金額=””]
    [仕訳行 借方科目=”” 借方金額=”” 貸方科目=”” 貸方金額=””]
    [仕訳行 借方科目=”” 借方金額=”” 貸方科目=”” 貸方金額=””]
    [/会計仕訳]
    とかかけると
    それぞれの業種の専用のテーブルをWP初級者に作ってもらうとき便利かなと
    思って質問させてもらいました。
    tagを日本語にできるだけでもラッキーでした。
    一応解決済みにしておきますが、
    属性を日本語にする方法とかありましたらまたお教えください。
    ありがとうございました。

    属性の名前を日本語にするにはWordPressコアのコードを修正する必要がありますね。
    関数 shortcode_parse_atts が属性を単なる文字列から配列形式へ変換しているので、修正するならここかなと思います。

    そのような用途で使いたい場合は
    テーブル作成プラグインを使うか、データをカスタムフィールドに蓄積させて
    テーブル出力するような仕組みを作ったほうが早い気がします。

    どうちてもショートコードでやるなら
    [会計仕訳]
    [仕訳行][借方科目][/借方科目][貸方科目][/貸方科目][貸方金額][/貸方金額][/仕訳行]
    [仕訳行][借方科目][/借方科目][貸方科目][/貸方科目][貸方金額][/貸方金額][/仕訳行]
    [/会計仕訳]
    というかんじで階層にすれば上手く行きませんかね?
    余計に見難いきはしますが。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「ショートコード名を日本語にしたい」には新たに返信することはできません。