タグ付けされた質問 「settings-api」

WordPress 2.7で追加された設定APIにより、設定フォームを含む管理ページを半自動的に管理できます。設定ページ、それらのページ内のセクション、セクション内のフィールドを定義できます。新しい設定ページは、その中のセクションとフィールドとともに登録できます。既存の設定ページは、その中に新しい設定セクションまたはフィールドを登録することで追加することもできます。

1
配列を使用した設定APIの例
私はWrox WordPressプラグイン開発ブックを新しいプラグインの使用を開始するための主要なリファレンスとして使用しています。すべての設定は1つの配列として保存できることを理解していますが、この例では、 Webでの検索は、例ごとに非常に異なるようです。Konstantinの投稿の後半で私は親しくなりましたが、複数のフィールドを持つより完全な例を見てみたいです。

2
一般設定ページに複数のカスタムフィールドを追加する
私がやりたいのは、いくつかのカスタムフィールドを一般設定に追加することです。これは私が使用しているコードです。それはうまく機能しますが、フィールドを追加する方法がわかりません。 ここでは、電話番号用と住所用の2つのフィールドを作成します。 function register_fields() { register_setting('general', 'my_first_field', 'esc_attr'); add_settings_field('my_first_field', '<label for="my_first_field">'.__('My Field' , 'my_first_field' ).'</label>' , 'print_custom_field', 'general'); } function print_custom_field() { $value = get_option( 'my_first_field', '' ); echo '<input type="text" id="my_first_field" name="my_first_field" value="' . $value . '" />'; } add_filter('admin_init', 'register_fields'); 複数のフィールドで機能させる唯一の方法は、すべてを複製することでした。 したがって、次のようになります。 function register_fields() { register_setting('general', 'my_first_field', 'esc_attr'); …

2
設定APIとテーマカスタマイザー
この質問はWordPress Development Stack Exchangeで回答できるため、WordPress Development Meta Stack Exchangeから移行されました。 6年前に移行され ました。 設定APIを使用するのが適切な場合と、テーマカスタマイザーを使用する方が適切な場合はいつですか? 午前中ずっとGoogleで検索してみましたが、この問題に関するよく考えられた最新のガイダンスを見つけることができませんでした。言うのはまだ早いですが、テーマカスタマイザーは、Squarespaceのような編集機能を取り入れるための示唆的な最初のステップだと感じています。テーマカスタマイザーを支持して設定APIを廃止する計画を知っている人はいますか?ゆっくりと進んでいくべきでしょうか、それとも設定APIに固執する方が良いでしょうか?彼らは隣り合って住むことができますか?もしそうなら、責任の分担はどこにありますか?

5
OOPプラグインの設定ページの提出に関する「エラー:オプションページが見つかりません」
Tom McFarlinのBoilerplateリポジトリをテンプレートとして使用して、OOPプラクティスを利用するプラグインを開発しています。設定を正しく送信できない理由を正確に把握しようとしています。ここで別の質問で提案されているように、アクション属性を空の文字列に設定しようとしましたが、それは助けにはなりませんでした... 以下は、私が使用している一般的なコード設定です... フォーム(/views/admin.php): <div class="wrap"> <h2><?php echo esc_html( get_admin_page_title() ); ?></h2> <form action="options.php" method="post"> <?php settings_fields( $this->plugin_slug ); do_settings_sections( $this->plugin_slug ); submit_button( 'Save Settings' ); ?> </form> </div> 以下のコードでは、 'option_list_selection'を除き、add_settings_field()およびadd_settings_section()のすべてのコールバックが存在すると仮定します。 プラグイン管理クラス(/{plugin_name}-class-admin.php): namespace wp_plugin_name; class Plugin_Name_Admin { /** * Note: Some portions of the class code and method functions are …

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グローバルに遭遇しました。これはどこで定義されていますか?

3
変数をadd_settings_section()コールバックに渡す方法は?
プラグインの各設定に対して、設定API関数呼び出しを可能な限り自動化しようとしています。オプション配列をループし、出力しadd_settings_section()、add_settings_field()十分に簡単です: add_settings_section(): $oenology_hooks_tabs = oenology_hooks_get_settings_page_tabs(); foreach ( $oenology_hooks_tabs as $tab ) { $tabname = $tab['name']; $tabtitle = $tab['title']; $tabsections = $tab['sections']; foreach ( $tabsections as $section ) { $sectionname = $section['name']; $sectiontitle = $section['title']; $sectiondescription = $section['description']; // Add settings section add_settings_section( 'oenology_hooks_' . $sectionname . '_section', $sectiontitle, 'oenology_hooks_' . …

2
get_option関数はキャッシュされますか?
プラグインでは、次のコードを使用してデータベースからオプションを取得します。 $options = get_option('my_plugin_options'); プラグインのさまざまな機能でこれを10回使用すると、WordPressはデータベースに対して10個のクエリを実行しますか、それともHTTPリクエストごとに1回だけデータベースを呼び出して結果をキャッシュしますか

3
Settings APIの利点は何ですか?
私がWordPressで仕事をすることはほとんどない、と言ってこれを序文させてください。実際、WordPressでサイトを最後にやったのは2.2の間に戻ってきました。昨日、私はすべてをかなり混乱させ、基本的なメニュープラグインを機能させるために、ここでいくつかの質問をしました。 プラグインが完全に機能し、期待どおりに動作するようになったので、設定APIを使用するなど、機能と互換性を追加するために、あちこちで小さな変更を加えることにしました。しかし、このAPIのチュートリアルを読んで非常に短い時間で、私はかなり混乱しました。次に、この混乱を深め、サンプルを実装しようとしました。 。 何か間違ったことをしていない限り、Settings APIを使用するために理解していることから、PER SETTINGという新しい関数を作成する必要があります。これは、平均的なプラグインでは3〜5個の関数、より高度なプラグインでは最大数百個の関数を意味します。すべての適用可能な$_POST変数を配列に簡単にインポートし、混乱を避けることができる場合に、この多くの関数を記述して(そしてそれらを混乱させないように命名システムを開発するのは)馬鹿げているようです。 たぶん私は昔ながらですが、そこから得るものがない限り、私が書いているコードの量を3倍や4倍にする理由はわかりません。Settings APIを追加する前にオプションを管理する方法は次のとおりです。 function __construct() { /* constructor stuff */ $this->options = $this->db_options = get_option( 'de-menu-options' ); if( $this->options === false ){ $this->options = $this->defaults; } if (is_admin()) { add_action('admin_menu', array(&$this, 'admin_menu')); } /* more stuff */ // When WordPress shuts down we store changes …

1
カスタム投稿タイプ設定ページ、アーカイブを表示するページを選択
そのため、この投稿の受け入れられた回答に従いました。カスタム投稿タイプの「フロントページ表示」設定に別の設定を追加することが可能です しかし、完全に機能しなかったため、この投稿で受け入れられた回答と比較する必要がありました。 do_settings_sectionsを出力できません。理由がわからない 今、それは実際に次のコードを使用して動作します //Add settings to menu add_action( 'admin_menu', 'events_options_add_page' ); function events_options_add_page() { // add_submenu_page('edit.php?post_type=events', 'Events Admin', 'Events Settings', 'edit_posts', basename(__FILE__), 'events_options_do_page'); add_submenu_page('edit.php?post_type=events', 'Events Admin', 'Events Settings', 'edit_posts', basename(__FILE__), 'events_options_do_page'); } ///wordpress/32689/possible-to-add-another-setting-to-front-page-displays-setting-for-custom-post //Fix Cap to allow editors to edit theme options function events_get_options_page_cap() { return 'edit_posts'; } add_filter('option_page_capability_events-options', …

1
テーマオプションが保存された後に関数を実行しますか?
奇妙な質問ですが、テーマ設定が保存された後でカスタム関数を実行するにはどうすればよいですか?register_settings()関数にサニタイズコールバックがあることはわかりますが、設定が変更される前に実行されます。保存後に実行するものが必要です。それを行うために使用できるアクションまたはフィルターはありますか? 編集- だから私は私が作ったこの設定を持っています: add_settings_section( 'kjd_body_background_settings_section', // ID hook name null, // label null, // function name 'kjd_body_background_settings' // page name ); add_settings_field( 'kjd_body_background_colors', // ID hook name null, //label null, //callback 'kjd_body_background_settings', // page name 'kjd_body_background_settings_section' // parent section ); そしてこの関数: function kjd_update_stylesheet( $oldvalue, $_newvalue ){ echo 'updated!'; die(); } …

1
プラグインオプションページの設定APIで複数選択配列を保存するにはどうすればよいですか?
これは、設定APIの使用ではなく、私のPHPの問題のほうが多いと思いますが、Wordpressで複数選択ボックスのデータの配列を保存することができません。 複数選択ボックスはカスタムメタフィールドに対応し、選択オプションはそのメタフィールドを表示するカスタム投稿タイプです。 表示コードは次のとおりです。 case 'select2': echo "<select id='$id' style='width:15em;height:10em;' class='select$field_class' name='" . $buddha_option_name . "[$id]' multiple>"; foreach($choices as $item) { $item = explode("|",$item); $item[0] = esc_html($item[0], 'buddha_textdomain'); $selected = ($options[$id]==$item[1]) ? 'selected="selected"' : ''; echo "<option value='$item[1]' $selected>$item[0]</option>"; } echo "</select>"; echo ($desc != '') ? "<br /><span class='description'>$desc</span>" : …

3
WordPress設定API、カスタムメニューページにタブを実装
私はこの男のWordPress設定APIチュートリアルシリーズをフォローしています。 http://wp.tutsplus.com/tutorials/theme-development/the-complete-guide-to-the-wordpress-settings-api-part-1/ これまでのところ、私は基本的なことに成功しています。今、タブを実装するとき、私は問題に直面しています。 問題1:タブが機能しない。すべてのフィールドが両方のタブに表示されています。セクション1はタブ1に、セクション2はタブ2に表示されます。 問題2:オプション2が保存されていません。タブを実装する前は問題なく動作していました。 コード: /* ----------------------------------------------------------------------------- */ /* Add Menu Page */ /* ----------------------------------------------------------------------------- */ function add_my_menu() { add_menu_page ( 'Page Title', // page title 'Menu Title', // menu title 'manage_options', // capability 'my-menu-slug', // menu-slug 'my_menu_page', // function that will render its output get_template_directory_uri() . '/assets/ico/theme-option-menu-icon.png' // …

1
設定ボタンが押されたときにカスタムアクションをトリガーする
これは私の最初のワードプレスプラグインであり、動作させるのに多くの問題を抱えています。ほぼ問題なく動作しますが、この特定のことを実行する方法が見つかりません。 基本的に私はプラグイン用のカスタム設定ページを持っています、それはまったく問題なくすべてを保存しますが、問題は、(同じ設定ページ内の)他のボタン(この場合は同期アクション)をトリガーする方法を教えてください。 プラグインを構成した後、テーブルのレコードを作成/更新する別のアクションをトリガーしますが、初めてワードプレスの古い投稿からレコードを作成/更新するために同期を実行する必要があるためです。 編集: wsd-parse-apiのプラグインソースコード。

2
マルチサイトの設定API-不足している更新メッセージ
マルチサイトインストールで設定APIを使用していて、オプションページがネットワークレベルにある場合options.php、管理ページが置かれwp-admin/network、WPがそのページにあることをWPが期待しているため、オプションの投稿は機能しませんwp-admin。 このWPインストールがマルチサイトインストールであるかどうかを(定数を介して)確認する関数を追加しました。そうである場合は、フォームのアクション値をに変更し../option.phpます。これでオプションは保存されますが、デフォルトのメッセージ「設定が保存されました」が表示されます。がありません(ただし、クエリ文字列にはが含まれますsettings-updated=true)。 メッセージを表示する方法について何か考えはありますか?

2
バックグラウンドオプションページに設定を追加するにはどうすればよいですか?
テーマを開発していて、組み込みのバックグラウンドオプションページにコンテンツを追加したいと考えています。設定APIを使用して新しいテーマオプションと設定を作成する方法を知っていますが、実際にバックグラウンドページを呼び出している場所がわかりません。私は検索しwp-includes/theme.phpましたが、バックグラウンド関数の呼び出しと実際にページをレンダリングするものを除いて、それほど多くはありません。 これはアクションで実行できませんか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.