我有一个WordPress自定义文章类型,我创建了它。CPT创建成功,并已成功添加到WordPress菜单中。
我使用以下代码创建了CPT:
我想要实现的是在CPT菜单项下嵌套一个自定义设置页面,如下所示的截图。
该图片展示了我想要为CPT创建的自定义设置页面。
我已经使用以下代码成功地将自定义的“设置”链接添加到我的CPT中。
问题:
如果您单击“设置”链接,则会将您带到此URL
edit.php?post_type=wpbp-backgrounds&page=wpbp_options
当您尝试保存此页面的设置时,它们实际上永远不会保存到数据库中。我会将此URL修改为页面URL:
edit.php?post_type=wpbp-backgrounds&page=wpbp_options&settings-updated=true 但我从未看到告诉您已保存设置的对话框/消息框。
希望这有意义,有人可以提供一些帮助和建议。 谢谢
编辑-添加var_dump和隐藏表单字段。
我正在将管理表单发布到:
这是如果在表单中添加var_dump的结果。
表单隐藏域的结果
这些是通过WP设置API自动添加到表单中的隐藏域。
我使用以下代码创建了CPT:
/**
* Registers the WPBP custom post types
*/
function register_wpbp_post_type(){
register_post_type($this->cpt,
array(
'labels' => array(
'name' => __('Backgrounds', $this->prefix),
'singular_name' => __('Background', $this->prefix),
'menu_name' => __('WP BG Pro', $this->prefix),
'add_new' => __('Add New', $this->prefix),
'add_new_item' => __('Add New Background', $this->prefix),
'edit_item' => __('Edit Background', $this->prefix),
'new_item' => __('New Background', $this->prefix),
'view_item' => __('View Background', $this->prefix),
'search_items' => __('Search Background', $this->prefix),
'not_found' => __('No Background Found', $this->prefix),
'not_found_in_trash' => __('No Background Found In Trash', $this->prefix),
'parent_item_colon' => ''
),
'public' => false,
'publicly_queryable' => false,
'hierarchial' => false,
'_builtin' => false,
'_edit_link' => 'post.php?post=%d',
'show_ui' => true,
'exclude_from_search' => true,
'show_in_nav_menus' => false,
'capability_type' => 'post',
'can_export' => true,
'has_archive' => false,
'supports' => array('title'),
'menu_icon' => '',
)
);
}
我想要实现的是在CPT菜单项下嵌套一个自定义设置页面,如下所示的截图。
该图片展示了我想要为CPT创建的自定义设置页面。
我已经使用以下代码成功地将自定义的“设置”链接添加到我的CPT中。
/**
* Add a link to the WordPress menu
*/
public function add_option_page() {
add_submenu_page('edit.php?post_type=wpbp-backgrounds', 'WP Backgrounds Pro', __('Settings', $this->hook), $this->accesslvl, 'wpbp_options', array(&$this, 'display_admin_page'));
}
问题:
如果您单击“设置”链接,则会将您带到此URL
edit.php?post_type=wpbp-backgrounds&page=wpbp_options
当您尝试保存此页面的设置时,它们实际上永远不会保存到数据库中。我会将此URL修改为页面URL:
edit.php?post_type=wpbp-backgrounds&page=wpbp_options&settings-updated=true 但我从未看到告诉您已保存设置的对话框/消息框。
希望这有意义,有人可以提供一些帮助和建议。 谢谢
编辑-添加var_dump和隐藏表单字段。
我正在将管理表单发布到:
<form action="" method="post" class="wpbp-form" enctype="multipart/form-data">
这是如果在表单中添加var_dump的结果。
array(6) {
["option_page"]=> string(12) "wpbp_options"
["action"]=> string(6) "update"
["_wpnonce"]=> string(10) "2584accf5f"
["_wp_http_referer"]=> string(77) "/wordpress-dev/wp-admin/edit.php?post_type=wpbp-backgrounds&page=wpbp_options"
["wpbp_options"]=>
array(3) {
["default_background"]=> string(1) "0"
["in_types"]=> string(5) "Posts"
["in_taxonomies"]=> string(8) "Category"
}
["Submit"]=> string(12) "Save Changes"
}
表单隐藏域的结果
这些是通过WP设置API自动添加到表单中的隐藏域。
<input type='hidden' name='option_page' value='wpbp_options' />
<input type="hidden" name="action" value="update" />
<input type="hidden" id="_wpnonce" name="_wpnonce" value="2584accf5f" />
<input type="hidden" name="_wp_http_referer" value="/wordpress-dev/wp-admin/edit.php?post_type=wpbp-backgrounds&page=wpbp_options" />