設定を検証しようとするまで、プラグイン管理パネルは正常に機能します。
register_setting('jo_plugin_options', 'jo_plugin_options', array($this, 'jo_validate_settings'));
add_settings_section('jo_main_section', 'Data Table Settings', array($this, 'jo_main_section_cb'), __FILE__); // id, title, section, callback, page
add_settings_field('jo_col_1_name', 'Column 1 Name: ', array($this, 'jo_col_1_name_setting'), __FILE__, 'jo_main_section');
add_settings_field('jo_col_2_name', 'Column 2 Name: ', array($this, 'jo_col_2_name_setting'), __FILE__, 'jo_main_section');
add_settings_field('jo_col_3_name', 'Column 3 Name: ', array($this, 'jo_col_3_name_setting'), __FILE__, 'jo_main_section');
add_settings_field('jo_file_upload', 'Upload File: ', array($this, 'jo_file_upload_setting'), __FILE__, 'jo_main_section');
したがって、 // array($this, 'jo_validate_settings')を // register_setting 行から削除すると、テキスト ボックスは正常に機能します。しかし、その検証コードを追加すると、それらが壊れてこのエラーが返されます。
*警告: 82 行目の /Applications/MAMP/htdocs/wp-content/plugins/plugin-rough.php の無効な文字列オフセット 'jo_col_1_name' *
ボックスは次のとおりです。
public function jo_col_1_name_setting() {
echo "<input id='jo_col_1_name' name='jo_plugin_options[jo_col_1_name]' type='text' value='{$this->options['jo_col_1_name']}' />"; }
public function jo_col_2_name_setting() {
echo "<input name='jo_plugin_options[jo_col_2_name]' type='text' value='{$this->options['jo_col_2_name']}' />"; }
public function jo_col_3_name_setting() {
echo "<input name='jo_plugin_options[jo_col_3_name]' type='text' value='{$this->options['jo_col_3_name']}' />"; }
私はオンラインでいくつかの読書をしましたが、キーが同じであり、機能するためには $this を &$this に変更する必要があると誰かが言っていました。私はそれを試しましたが、何も起こらず、同じエラーが発生しました。
何か案は?
さらに: 追加したいフィールドごとに add_settings_field を使用する必要がありますか? これらを大量に追加するようです。
var_dump は私にこれを示しています:
string(31) "{$this->options[jo_col_1_name]}"