这让我疯狂了好几个小时。。。请告诉我为什么$ppk\\u fields数组在ppk\\u field\\u回调函数中为空?请注意,它在ppk\\u default\\u id函数中返回正确的值,但这不是回调函数。非常感谢。
ppk。php
class Ppk {
public function ini() {
add_action( \'admin_menu\', array( $this, \'add_ppk_p_menu\' ) );
}
public function add_ppk_p_menu() {
add_submenu_page( \'tools.php\', \'PPK PLUGIN\', \'PPK PLUGIN\', \'manage_options\', \'ppk_p\', array( $this, \'ppk_build_dashboard\' ) );
}
public function ppk_build_dashboard() {
require_once plugin_dir_path( __FILE__ ) . \'ppk-builder.php\';
}
}
if ( class_exists( \'Ppk\' ) ) {
$ppk = new Ppk();
$ppk->ini();
}
ppk生成器。php$ppk_sections = [
\'section_1\' => [
\'title\' => \'Group One\'
]
];
$ppk_fields = [
\'field 1\' => [
\'title\' => \'Fieald One\',
\'type\' => \'text\',
\'section\' => \'section_1\',
\'default\' => \'default\'
]
];
register_setting( \'ppk-builder\', \'ppk-builder\', \'ppk-builder_validate\' );
foreach ($ppk_sections as $id => $value) {
add_settings_section( $id, $value[\'title\'], \'ppk_section_callback\', \'ppk_p\');
}
foreach ($ppk_fields as $id => $value) {
add_settings_field( $id, $value[\'title\'], \'ppk_field_callback\', \'ppk_p\', $value[\'section\'], $id );
}
function ppk_section_callback() {return null;}
function ppk_default_id( $id ) {
global $ppk_fields;
return $ppk_fields[ $id ][\'default\'];
}
function ppk_field_callback($id) {
global $ppk_fields;
$option = get_option(\'ppk-builder\');
$id_field = isset($option[$id]) ? $option[$id] : ppk_default_id($id);
switch ($ppk_fields[$id][\'type\']) {
case \'text\':
echo \'<input type="text" name="ppk-builder[\' . $id . \']" value="\' . $id_field . \'"/>\';
break;
}
}
settings_fields( \'ppk-builder\' );
do_settings_sections( \'ppk_p\' );