タグ付けされた質問 「callbacks」

1
add_settings_field()からコールバック関数に引数を渡す方法は?
私はこのような機能を持っています: add_settings_field( 'contact_phone', 'Contact Phone', 'settings_callback', 'general'); 動作します。settings_callbackを呼び出します。涼しい。これに伴う問題は、追加する設定ごとにコールバック関数を定義する必要はないということです。もし私がやっていることは、ちょっとしたことをエコーアウトするだけなら。 function settings_callback() { echo '<input id="contact_phone" type="text" class="regular-text" name="contact_phone" />'; } 一体どうしてそんなことをしなければならないのですか?id、class、およびnameはすべてparamsである必要があります。 paramsをsettings_callback関数に渡す方法はありませんか?私はコアを見始めました、ここに行きました:http : //core.trac.wordpress.org/browser/tags/3.1.3/wp-admin/includes/template.php ..そしてこの$ wp_settings_fieldsグローバルに遭遇しました。これはどこで定義されていますか?

2
current_shortcode()-現在使用されているショートコードを検出します
プラグインクラスで、公開データ用の単純なフィールドを提供したいと思います:メール、電話番号、Twitterなど。リストは拡張できます。 詳細については、GitHubのプラグインPublic Contact Dataを参照してください。 使い方を簡単にするために、入力しやすいショートコードも提供したいと思います。 [public_email] [public_phone] [public_something] 唯一の違いは2番目の部分です。ショートコードはエラーが発生しやすいので、これ以上の引数は必要ありません。そこで、プラグインクラスのすべてのフィールドに1つのショートコードハンドラーを登録します。 foreach ( $this->fields as $key => $value ) { add_shortcode( 'public_' . $key, array( $this, 'shortcode_handler' ) ); } ここで、shortcode_handler()どのショートコードが呼び出されたかを知る必要があります。私の質問は、どうすればよいですか? 私の現在の回避策は別の関数です: protected function current_shortcode() { $backtrace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS ); return $backtrace[3]['args'][0][2]; } これは…のために働きthe_content()ます。しかし、エレガントでも堅牢でもありません。 私はを読みましたがwp-includes/shortcodes.php、今はそれをよりよくする方法がわかりません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.