所以我一直在为wordpress制作一个插件,为产品添加一个自定义帖子类型,这非常简单,我做到了。
之后,我想在管理菜单中为自定义帖子类型创建一个设置页面子菜单,然后创建一些选项。
所以我遇到的第一个问题是出现了一个警告
Warning: Illegal string offset \'option1\' in C:/blablablal on line 96
据我所知,这意味着该选项不知道应该将选项保存在数组中,而是尝试将其放入字符串中。因此,我找到了一种方法,通过在变量中添加括号来消除警告。
$kns_options[] = get_option(\'kns_products_options\');
(我不知道这是否是一个解决方案,但我在大量的谷歌搜索中找不到任何关于它的信息)
因此,警告消失后,我开始尝试通过我创建的表单添加选项,但这些选项只是不想保存。我试图var\\u转储变量,但结果为空。。有没有错别字,因为我肯定找不到!
我将在下面发布代码,请告诉我是否应该将其重新发布在粘贴箱或其他地方!
<?php
add_action( \'init\', \'kns_register_products_post_type\' );
function kns_register_products_post_type() {
// Registrerar en custom post type som heter produkter
register_post_type(\'produkter\',
array(
\'labels\' =>
array(
\'name\' => \'Produkter\',
\'singular_name\' => \'Produkt\',
\'add_new\' => \'Lägg till ny\',
\'add_new_item\' => \'Lägg till ny Produkt\',
\'edit_item\' => \'Ändra Produkt\',
\'new_item\' => \'Ny Produkt\',
\'view_item\' => \'Visa Produkt\',
\'search_items\' => \'Sök Produkter\',
\'not_found\' => \'Inga produkter hittades\',
\'not_found_in_trash\' => \'Inga produkter hittades i papperskorgen\',
\'parent_item_colon\' => \'Produkt Förälder:\',
\'menu_name\' => \'Produkter\'
),
\'public\' => true,
\'supports\' => array(\'title\', \'editor\', \'thumbnail\'),
\'taxonomies\' => array(\'category\'),
\'menu_position\' => 20,
)
);
}
add_action( \'admin_menu\', \'kns_products_create_settings_submenu\' );
function kns_products_create_settings_submenu() {
// Skapar sub menu för Produkter-fliken
add_submenu_page(\'edit.php?post_type=produkter\', \'Inställningar\', \'Inställningar\', \'manage_options\', \'product_settings\', \'kns_products_settings_page\' );
// Kallar på register_setting funktionen
add_action( \'admin_init\', \'kns_products_register_settings\');
}
function kns_products_register_settings() {
register_setting( \'kns_products_settings_group\', \'kns_products_options\', \'kns_sanitize_options\');
}
function kns_sanitize_options( $input ) {
$input[\'option1\'] = sanitize_text_field( $input[\'option1\'] );
$input[\'option2\'] = sanitize_text_field( $input[\'option2\'] );
}
function kns_products_settings_page() {
?>
<div class="wrap">
<h2>Produktinställningar</h2>
<form method="post" action="options.php">
<?php
settings_fields( \'kns_products_settings_group\' );
$kns_options[] = get_option(\'kns_products_options\');
var_dump($kns_options);
?>
<table class="form-table">
<h3>Utseende</h3>
<tr valign="top">
<th scope="row"><label for="option1">Blajja</label></th>
<td>
<input type="text" id="option1" name="kns_options[option1]" value="<?php echo esc_attr( $kns_options[\'option1\'] ); ?>" />
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="option2">Annan Blajja</label></th>
<td>
<input type="text" id="option2" name="kns_options[option2]" value="<?php echo esc_attr( $kns_options[\'option2\'] ); ?>" />
</td>
</tr>
</table>
<p class="submit">
<input type="submit" class="button-primary" value="Spara inställningar" />
</p>
</form>
</div>
<?php
}
?>
我真的需要帮助,我已经做了好几个小时了。。
编辑:
var\\u转储结果为
array(1) { [0]=> string(0) "" }