Я создаю плагин Wordpress, где я хочу, чтобы некоторые настройки были применены. Каждая установка имеет очень схожую функциональность, так что моя мысль была использовать ту же функцию при проверке и объект изменения, поэтому некоторые атрибуты объекта могут быть доступны:
//Width and margins section
add_settings_section(
'pdfcrowd_section_dimension', // ID
'PDF widths and margins', // Title
array($this, 'dimension_section_info'), // Callback
'pdfcrowd_options' // Page
);
$this->field_id = 'pdfcrowd_pdf_width';
$this->field_type = 'number';
add_settings_field(
$this->field_id, // ID
'PDF with in units', // Title
array($this, 'sanitizefield'), // Callback
'pdfcrowd_options', // Page
'pdfcrowd_section_dimension' // Section
);
$this->field_id = 'pdfcrowd_pdf_height';
$this->field_type = 'number';
add_settings_field(
$this->field_id , // ID
'PDF page height in units. -1 for a single page PDF.', // Title
array($this, 'sanitizefield'), // Callback
'pdfcrowd_options', // Page
'pdfcrowd_section_dimension' // Section
);
$this->field_id = 'pdfcrowd_pdf_margin_top';
$this->field_type = 'number';
add_settings_field(
$this->field_id, // ID
'Top PDF page margin in units.', // Title
array($this, 'sanitizefield'), // Callback
'pdfcrowd_options', // Page
'pdfcrowd_section_dimension' // Section
);
Есть много больше настроек, но моя мысль, что sanitizefield как функцию обратного вызова для каждого параметра, а затем изменить field_id и field_type объекта. Проблема в том, что значения field_id и field_type - это значения, установленные последним в коде.
Так что мой вопрос: возможно ли отправить field_type и field_id каким-то образом и использовать функцию обратного вызова для дезинфекции. Или мне действительно нужно сделать одну функцию обратного вызова для каждой настройки параметра?
$this->field_id = 'pdfcrowd_pdf_width';
$this->field_type = 'number';
add_settings_field(
$this->field_id, // ID
'PDF with in units', // Title
array($this, 'sanitizefield1'), // Callback
'pdfcrowd_options', // Page
'pdfcrowd_section_dimension' // Section
);
$this->field_id = 'pdfcrowd_pdf_height';
$this->field_type = 'number';
add_settings_field(
$this->field_id , // ID
'PDF page height in units. -1 for a single page PDF.', // Title
array($this, 'sanitizefield2'), // Callback
'pdfcrowd_options', // Page
'pdfcrowd_section_dimension' // Section
);
и т.д.
ага , Большое спасибо! На самом деле я просто искал способ отправки необязательных параметров. Я смотрел на https://codex.wordpress.org/Creating_Options_Pages # example2, и этот кодx не сделал этого очень ясно, что это было возможно. БОЛЬШОЕ СПАСИБО! – bestprogrammerintheworld
плюс 1 для пользовательского фильтра. – bestprogrammerintheworld