web-dev-qa-db-ja.com

テーマカスタマイザでショートコードを許可する

Wpのガイドラインに正しく従っているすべてのテーマ開発者は、別のテーマオプションセクションを管理パネルにする代わりに、デフォルトのwpカスタマイザの機能を使用してテーマをカスタマイズします。

しかし、私が理解できなかったのは、そのwpカスタマイザ内でショートコードを使用する方法です。

たとえば、テーマの1つに、カスタマイザ内の copyright text というセクションがあります。今、私は手動でCopyright 2016を置くことができましたが、私がやりたかったことはwp shortcodeを利用することです。そこで、私は year という簡単なショートコードを作成して、現在の年を自動取得します。

add_shortcode('year', function() {
    return date( 'Y' );
});

しかし、私がwpカスタマイザ内で[year]を使用するとき、それはショートコードを認識しません。私はwidget領域のためのショートコードを有効にする方法があることを知っています、しかし私はwpテーマカスタマイザのために同様の何かがあるかどうかも考えていました。

どんな助けでも素晴らしいでしょう...

5
iSaumya

ショートコードを出力しているものはすべてdo_shortcode()で囲みます。

3
setterGetter

@setterGetterは正しいです。do_shortcode()でラップする必要がありますが、カスタマイザ内のフィールドの内側ではなくカスタマイザフィールドが呼び出される場所でそれを実行する必要があります。あなたの場合はfooter.phpを見てみてください。あなたが彼らがコードを出力する場所を見つけることができるならばecho do_shortcode()でそれをラップしてください

しかし、それはあなたのショートコードが正しく表示されるという意味ではありません、あなたが彼らがそのカスタマイザ設定を作成するとき彼らがどんなsanitize_callbackのタイプを使用するかについて考慮する必要もあります。ショートコードが実行されないようにするために、サニタイズコールバックを使用している可能性があります。

3
user1645213

Kirkiカスタマイザプラグインは、ショートコードを受け付けてget_theme_mod()を通して生のまま出力するように見えるタイプ 'code'コントロールを持っているようです。

あなたはあなたのテーマにプラグインを統合する方法を少し学ぶ必要があるでしょう。

0
Richy