看起来您正在使用设置API将图像添加到图库或幻灯片中。正如@kuchenundkakao所建议的,帖子类型将是一个不错的选择,尤其是如果你有多张幻灯片,或者如果你将在不同的图库中使用不同的幻灯片。
如果您不需要自定义post类型(这很容易过度),那么使用add_menu_page
. 使用您自己的HTML表单,并使用update_option()
. 使用检索幻灯片get_option()
.
WordPress中的选项可以保存为数组,并自动作为数组返回。它在数据库中被序列化,但您不必担心它。WordPress会为您处理。
以下是从HTML表单保存值时可能需要使用的示例:
$all_slides = array();
// Get our form data, from fields like: <input name="slides[0][name]">
$submitted_slides = stripslashes_deep($_POST[\'slides\']);
// Get our images that were uploaded using a file input
$slide_files = $_FILES[\'slides\'];
foreach($submitted_slides as $i => $slide) {
// Add a slide to our array
$all_slides[] = array(
\'title\' => $slide[\'title\'],
\'description\' => $slide[\'description\'],
\'image\' => wp_handle_upload( $slide_files[$i] ),
);
}
// Save our slides to the database
update_option(\'mytheme-gallery\', $all_slides);
您将要使用
admin_post
处理表单提交的操作,您将希望使用
nonce verification 确保您专门为该页面保存表单。使用该示例,您可以使用
get_option(\'mytheme-gallery\')
.
我也可以建议Options Framework 由Devin Price插件创建自定义管理页面。如果您只需要一个页面来管理滑块,那就太过分了。主要的好处是它利用媒体上传器上传图像,并为您处理验证。